プロトコルWindowsを使用して、Android アプリケーションを会社のローカル ネットワーク ( )に接続しようとしています。smb問題は、私がこの問題について初心者であり、何かが欠けていることです。AREQA.txt目標は、ネットワークからデバイスにファイルをダウンロードすることです。ただし、デバイスにコンパイルするとアプリケーションがクラッシュするため、コードがファイルの場所を追跡できるかどうかを確認することさえできません (正常にロードされますが、DownLoadF001プロシージャを呼び出すとクラッシュします)。コードは次のとおりです。
public void DownLoadF001(View v) {
jcifs.Config.registerSmbURLHandler();
String user;
String password;
String filename;
File localFile;
SmbFile path = null;
try {
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null,"@@@@@@", "********");
path = new SmbFile("smb:\\192.168.1.11/.../AREQA.txt", auth);
try {
if(path.exists()){
Toast.makeText(getApplicationContext(), "Sucesso!", Toast.LENGTH_LONG).show();
}
} catch (Exception e1) {
Toast.makeText(getApplicationContext(), e1.toString(), Toast.LENGTH_LONG).show();
}
} catch (MalformedURLException e2) {
Toast.makeText(getApplicationContext(), e2.toString(), Toast.LENGTH_LONG).show();
}
}
私はすでにメインのものから内部を(関連するすべてのコードとともに)削除しようとしましたがtry、アプリケーションはクラッシュしなくなりました。ただし、それがないと、接続が機能しているかどうかを確認できません。
編集:エラーをキャッチすることができました ( Exception e1):
java.lang.NullPointerException: Attempt to invoke virtual method int java.lang.String.length()' on a null object reference. それを解決するためのアイデアはありますか?
また、@greenapps で指摘されているように、この手順を.xmlボタンからonClickメソッドで呼び出しています。