我希望我有更多关于这个错误的信息,但我就是没有。我有一个名为 BugSense
(现在是 Splunk MINT
)的工具,它可以将崩溃发送到远程服务器,这就是我得到的全部内容:
java.lang.NullPointerException
at android.view.HardwareRenderer$GlRenderer.checkCurrent(HardwareRenderer.java:960)
at android.view.HardwareRenderer$Gl20Renderer.destroyLayers(HardwareRenderer.java:1148)
at android.view.ViewRootImpl.destroyHardwareResources(ViewRootImpl.java:576)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:973)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2448)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4482)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)
有趣的是,所有的错误实例都来自:
- 蓝光 4.0
- 他们都 Root 了
- 他们都关闭了移动网络
- 他们都有至少 12 个正在运行的应用
那么……你怎么看?
- 有人在 HardwareRenderer 类中有过 NPE 吗?
- 会不会是“root”问题(即设备被 root 的问题)?
- 会不会是“硬件”问题(即 BLUE DASH 4.0 的问题)
最佳答案
问题是代码使用了空对象。
MyClass class;
class.doStuff(); // Will throw NullPointerException as class is null
MyClass newClass = new MyClass();
newClass.doStuff(); // Will work as newClass is pointing to an object.
因为我没有违规代码,所以我无法提供进一步的帮助。我建议您在 (HardwareRenderer.java:960) 中包含代码,以及来自堆栈的调用路由,因为这是导致异常的原因。
关于java - HardwareRenderer 中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18445430/