问题描述
有我的代码。
jcifs.Config.setProperty("jcifs.smb.client.enableSMB2","true");
jcifs.Config.setProperty("jcifs.smb.client.disableSMB1","true");
jcifs.Config.setProperty("jcifs.smb.client.useSMB2Negotiation","true");
jcifs.Config.setProperty("jcifs.smb.client.ipcsigningEnforced","false");
jcifs.Config.setProperty("jcifs.smb.client.maxVersion","SMB3");
jcifs.Config.setProperty("jcifs.smb.client.minVersion","SMB202");
jcifs.Config.setProperty("jcifs.smb.client.port139.enabled","true");
jcifs.Config.setProperty("jcifs.smb.client.enableSMB2","true");
ArrayList<NetWorkScanner.serverBean> servers = mNetWorkScanner.getServers();
Log.i(TAG,"mNetWorkScanner : " + servers);
Log.i(TAG,"mNetWorkScanner len : " + servers.size());
if(servers != null && servers.size() > 0) {
new Thread(new Runnable() {
@Override
public void run() {
for(NetWorkScanner.serverBean info : servers) {
try {
final String url = "smb://" + info.serverIp + "/share";
if(info.serverIp.equals("192.168.0.9")) continue;
SmbFile temp = new SmbFile(url);
try{
Log.i(TAG,"temp.list() : " + temp.listFiles());
Log.i(TAG,"temp.getDfsPath() : " + temp.getDfsPath());
} catch( SmbException sbex ) {
Log.i(TAG,"error sbex : " + sbex);
throw new Error(sbex);
}
} catch( MalformedURLException ex ) {
Log.i(TAG,"error ex : " + ex);
}
}
}
}).start();
}
而且,有错误日志。
2020-09-28 09:38:52.121 5224-6765/com.android.tv.settings E/AndroidRuntime: FATAL EXCEPTION: Thread-261
Process: com.android.tv.settings,PID: 5224
java.lang.Error: jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/192.168.0.2
jcifs.util.transport.TransportException
jcifs.smb.SmbException: This client does not support the negotiated dialect.
at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:329)
at jcifs.util.transport.Transport.run(Transport.java:241)
at java.lang.Thread.run(Thread.java:764)
at jcifs.util.transport.Transport.run(Transport.java:258)
at java.lang.Thread.run(Thread.java:764)
at com.android.tv.settings.device.networkstorage.AvailableNetworkStorageFragment$1.run(AvailableNetworkStorageFragment.java:96)
at java.lang.Thread.run(Thread.java:764)
Caused by: jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/192.168.0.2
jcifs.util.transport.TransportException
jcifs.smb.SmbException: This client does not support the negotiated dialect.
at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:329)
at jcifs.util.transport.Transport.run(Transport.java:241)
at java.lang.Thread.run(Thread.java:764)
at jcifs.util.transport.Transport.run(Transport.java:258)
at java.lang.Thread.run(Thread.java:764)
at jcifs.smb.SmbTransport.connect(SmbTransport.java:309)
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:156)
at jcifs.smb.SmbFile.doConnect(SmbFile.java:911)
at jcifs.smb.SmbFile.connect(SmbFile.java:957)
at jcifs.smb.SmbFile.connect0(SmbFile.java:880)
at jcifs.smb.SmbFile.getType(SmbFile.java:1285)
at jcifs.smb.SmbFile.doEnum(SmbFile.java:1736)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1718)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1651)
at com.android.tv.settings.device.networkstorage.AvailableNetworkStorageFragment$1.run(AvailableNetworkStorageFragment.java:90)
我想使用本地网络上运行samba的IP地址获取共享目录名称。 但是,我认为samba和jcifs库之间的连接有问题! 我在Ubuntu 20.0.4中使用Samba:4.11.6-Ubuntu和在Android中将jcifs-1.3.19.jar转换为本地静态库。请帮忙。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)