试图使用SmbFileInputStream

时间:2012-12-14 01:02:15

标签: java android eclipse smb

这是我上周问的一个问题的更新版本 我正在尝试使用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?
*是否有需要进入清单的读外部权限?

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

2 个答案:

答案 0 :(得分:1)

您是否尝试使用实际的IP地址“smb:// username:password @ local ip /”。对我来说,我必须使用IP,计算机名称我的应用程序从未连接到Windows共享和崩溃。

答案 1 :(得分:0)

我也遇到了同样的问题,但我只是想通过在代码中加入一些代码来部分回答你的问题,这样就不会造成严重的崩溃。

以下是我在代码中添加的捕获量

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

如果我发现更多信息,我将编辑此帖子。