【发布时间】:2014-10-23 09:20:15
【问题描述】:
我正在编写一个 android 应用程序以从网络下载文件,但我不断收到以下错误:
java.lang.NullPointerException 在 jcifs.smb.ServerMessageBlock.writeString(ServerMessageBlock.java:213) 在 jcifs.smb.ServerMessageBlock.writeString(ServerMessageBlock.java:202) 在 jcifs.smb.SmbComNTCreateAndX.writeBytesWireFormat(SmbComNTCreateAndX.java:170) 在 jcifs.smb.AndXServerMessageBlock.writeAndXWireFormat(AndXServerMessageBlock.java:101) 在 jcifs.smb.AndXServerMessageBlock.encode(AndXServerMessageBlock.java:65) 在 jcifs.smb.SmbTransport.doSend(SmbTransport.java:415) 在 jcifs.util.transport.Transport.sendrecv(Transport.java:70) 在 jcifs.smb.SmbTransport.send(SmbTransport.java:619) 在 jcifs.smb.SmbSession.send(SmbSession.java:240) 在 jcifs.smb.SmbTree.send(SmbTree.java:111) 在 jcifs.smb.SmbFile.send(SmbFile.java:721) 在 jcifs.smb.SmbFile.open0(SmbFile.java:926) 在 jcifs.smb.SmbFile.open(SmbFile.java:943) 在 jcifs.smb.SmbFileOutputStream.(SmbFileOutputStream.java:142) 在 jcifs.smb.SmbFileOutputStream.(SmbFileOutputStream.java:97) 在 jcifs.smb.SmbFileOutputStream.(SmbFileOutputStream.java:67) 在 za.co.ver_tex.itqueries.NetworkShareFileCopy.copyFileUsingJcifs(NetworkShareFileCopy.java:80) 在 za.co.ver_tex.itqueries.ViewQuery.ViewFile(ViewQuery.java:780) 在 za.co.ver_tex.itqueries.ViewQuery$4.onClick(ViewQuery.java:375) 在 android.view.View.performClick(View.java:4633) 在 android.view.View$PerformClick.run(View.java:19330) 在 android.os.Handler.handleCallback(Handler.java:733) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:157) 在 android.app.ActivityThread.main(ActivityThread.java:5356) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 在 dalvik.system.NativeStart.main(Native Method)
这是我的代码 :
public void copyFromNetwork(String NetworkFile, String DestinationFile) {
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("Domain",
"User", "Password");
SmbFile remoteFile;
try {
remoteFile = new SmbFile("smb:" + NetworkFile, auth);
OutputStream os = new FileOutputStream(DestinationFile);
InputStream is = null;
is = remoteFile.getInputStream();
int bufferSize = 5096;
byte[] b = new byte[bufferSize];
int noOfBytes = 0;
while ((noOfBytes = is.read(b)) != -1) {
os.write(b, 0, noOfBytes);
}
os.close();
is.close();
} catch (Exception ex) {
Log.w("FileCopy", ex);
}
}
【问题讨论】:
-
该代码看起来甚至不应该编译 - 你使用的是
remoteFile局部变量,但它没有被明确分配...... -
抱歉错过了复制行
-
请发帖:ServerMessageBlock.java:213
-
remoteFile = new SmbFile("smb:" + NetworkFile, auth);