这似乎发生在许多用于4.2.x生产应用程序的设备上,但我无法在自己的设备上重现它,(4.1和4.0不受影响)。查看TextureView的源代码,看起来像mAttachInfo.mHardwareRenderer.createHardwareLayer(mOpaque)返回null并且因此触发了NPE。我想如果这只发生在不支持硬件加速的设备上,但看起来很多Nexus 4设备也会受到影响(不是我自己的Nexus 4)。 'android:hardwareAccelerated =“true”'也在清单中。
TextureView.java line 379 android.view.TextureView.getHardwareLayer
致命异常java.lang.NullPointerException
TextureView.java第379行
android.view.TextureView.getHardwareLayer
View.java line 13087
android.view.View.getDisplayList
View.java line 13162
android.view.View.getDisplayList
View.java line 13896
android.view.View.draw
ViewGroup.java第3024行
android.view.ViewGroup.drawChild
ViewGroup.java第2893行
android.view.ViewGroup.dispatchDraw
答案 0 :(得分:0)
事实证明,视图已被删除onSurfaceCreated,您无法在4.2中删除该视图,并且根本不应该执行此操作。 (按照罗曼的说法:“你做得不好!”)