代码看起来像这样:
// This is com.n.common.Networking.downloadBmp( ) function
// ...
byte[] data = inputStreamToByteArray(new PatchedInputStream(connectJava(url)));
// if the data is null in this moment - return;
if (data == null) // <--- line 185
return null;
// ...
这样的例外:
ERROR/AndroidRuntime(4526): Uncaught handler: thread pool-1-thread-2 exiting due to uncaught exception
ERROR/AndroidRuntime(4526): java.lang.NullPointerException
ERROR/AndroidRuntime(4526): at com.n.common.Networking.downloadBmp(Networking.java:185)
ERROR/AndroidRuntime(4526): at com.n.common.AsyncNetworking$3.run(AsyncNetworking.java:203)
ERROR/AndroidRuntime(4526): at java.lang.Thread.run(Thread.java:1060)
ERROR/AndroidRuntime(4526): at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:648)
ERROR/AndroidRuntime(4526): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:673)
ERROR/AndroidRuntime(4526): at java.lang.Thread.run(Thread.java:1060)
这怎么可能?
编辑:很可能是由于使用Eclipse“组织导入”功能,它改变了行号 - 并将较新的代码版本与旧的部署版本进行比较。请大家帮忙。答案 0 :(得分:2)
还有其他事情,行无法生成NPE。您很可能有一个过时的构建,它在日志中报告错误的行号。
答案 1 :(得分:2)
应该是部署问题或与保存文件和多个版本相关的问题。抛出异常的代码必须与您发布的代码不同。
尝试清理/重新编译/(重新部署)并查看行号是否更改
答案 2 :(得分:0)
一个快速的建议是,问题出在“inputStreamToByteArray(new PatchedInputStream(connectJava(url)));”。
我也想知道“connectJava”是什么?这是你创建的方法吗?如果是,请提供它,因为我怀疑它导致了问题。