0

这是我上周提出的问题的更新版本。
我正在尝试使用 SmbFileInputStream 将我的 Android 连接到我的 PC,
但应用程序中止(在我的平板电脑上)并显示以下错误消息:

"The application has stopped unexpectedly. Please try again."  

我正在使用 Try/Catch,但它不会触发任何这些异常。
适用的代码如下所示:

   SmbFile inFile = null;  
   jcifs.Config.setProperty( "jcifs.netbios.wins", "192.168.2.2" ) }  
   try { inFile = new SmbFileInputStream( "smb://MIKE-PC/Users/Public/List1.txt" ); }
   catch (SmbException e)          {  ListItems.add("SMB Error");  }  
   catch (MalformedURLException e) {  ListItems.add("URL Error");  }  
   catch (UnknownHostException e)  {  ListItems.add("Host Error");  }

我尝试了使用和不使用名称和密码的代码,但均未成功:

   try { inFile = new SmbFile( "smb://MIKE-PC_Network:123ABC@Mike-PC/" ); }

当我尝试分两步执行此操作时,SmbFile 不会中止,但 SmbFileInputStream 会。

   try {  sFile = new SmbFile( "smb://MIKE-PC/Users/Public/List1.txt" );  }  
   try {  inFile = new SmbFileInputStream( sFile );  }  

当我尝试获取文件列表时, SmbFile 不会中止,但 sFile.list 会。

   try {  sFile = new SmbFile( "smb://MIKE-PC/" ); }
   try {  lBuf = sFile.list(); . . .

我在本地网络上,而不是域上。
平板电脑能够使用另一个应用程序登录,所以我知道网络正常。
我已经尝试了所有可能的组合中的用户、网络、PC 名称。

SMB 在运行之前是否需要一些额外的信息?

例如,在网上搜索了几天后,我看到了以下提示:
* Java SMB 无法在 Android 中运行 - 这是真的吗?我有哪些?
* 将 jcifs.jar 放入 libs 文件夹将不适用于 jcifs。
* 我需要将 jCIFS jar 文件添加到 CLASSPATH,还是由 Eclipse 处理?
* 如果我给 SmbFileInputStream 一个文字字符串,我需要调用 registerSmbURLHandler 吗?
* 清单中是否需要读取外部权限?

这是真的吗,我该怎么办?

4

2 回答 2

1

did you try "smb://username:password@local ip/" do it with the actual IP address. for me I had to do it with IP, with computer name my app never connected to windows share and crashed.

于 2013-04-22T06:46:20.433 回答
0

我也有同样的问题,但我只是想通过添加一些你应该包含在代码中的捕获来部分回答你的问题,这样它就不会发生硬崩溃。

这是我在代码中添加的捕获

catch (SmbException 
      | MalformedURLException 
      | UnknownHostException 
      | NetworkOnMainThreadException 
      | ExceptionInInitializerError e)

如果我找到更多信息,我会编辑这篇文章。

于 2016-03-09T19:51:30.657 回答