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/" ); }

2つのステップで実行しようとすると、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が機能する前に必要な追加情報はありますか?

たとえば、何日もWebを検索した後、次のヒントが表示されました。
* Java SMBはAndroidでは機能しません-それは本当ですか、どちらがありますか?
* jcifs.jarをlibsフォルダーに置くと、jcifsでは機能しません。
* jCIFS jarファイルをCLASSPATHに追加する必要がありますか、それともEclipseによって処理されますか?
* SmbFileInputStreamにリテラル文字列を指定する場合、registerSmbURLHandlerを呼び出す必要がありますか?
*マニフェストに含める必要のある外部読み取り権限はありますか?

それは本当ですか、そして私はそれについて何をしますか?

4

2 に答える 2

1

「smb://username:password@local ip/」は実際の IP アドレスで試しましたか。私にとっては、IP でそれを行う必要がありました。コンピューター名を使用すると、アプリは Windows 共有に接続されず、クラッシュしました。

于 2013-04-22T06:46:20.433 に答える
0

私も同じ問題を抱えていますが、ハードクラッシュを起こさないようにコードに含める必要があるいくつかのキャッチを追加することで、質問に部分的に答えたかっただけです。

コードに追加したキャッチは次のとおりです

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

さらに情報が見つかったら、この投稿を編集します。

于 2016-03-09T19:51:30.657 に答える