Dostałem kilka komunikatów o błędach z mojej aplikacji za pomocą jednego kliknięcia przycisku. Po kliknięciu animacja powinna się rozpocząć, ale przycisk staje się większy. Działa doskonale na większości urządzeń, ale na niektórych (myślę, że głównie 4.X i wyżej) ulega awarii.NullPointerException z włączoną obsługą Hardwareacceleration?
wiadomość Exception (Stos nazwiska):
java.lang.NullPointerException
at android.view.GLES20RecordingCanvas.drawBitmap(GLES20RecordingCanvas.java:118)
at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:400)
at android.view.View.draw(View.java:10999)
at android.view.ViewGroup.drawChild(ViewGroup.java:3186)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.ViewGroup.drawChild(ViewGroup.java:3184)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.ViewGroup.drawChild(ViewGroup.java:3184)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.ViewGroup.drawChild(ViewGroup.java:3184)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.draw(View.java:11017)
at android.view.View.getDisplayList(View.java:10444)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:883)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2089)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1781)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2666)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:4977)
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:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Z góry dzięki!
Wzniesiono z uwagi na zwięzłość. Metoda 'draw' nie uruchamia żadnego kodu aplikacji, więc jeśli twoja logika aplikacji zgłasza wszelkie wyjątki wskaźnika pustego, zostaną one przechwycone gdzie indziej (powiedzmy o zdarzeniu, itp.), Ale na pewno nie podczas rysowania. Jest niewiele rzeczy, które twoja aplikacja robi, gdy pojawia się przerysowanie. Sądzę, że ta metoda jest bezpieczna dla twojej aplikacji. Ale nie wiem, czy to bezpieczne dla urządzenia. – Subhas