Я пытаюсь подключить приложение Android к локальной сети моей компании (Windows
) по протоколу 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
.