/ / NullPointerException GLES20RecordingCanvas.drawBitmap 4.0.3 i 4.0.4 - android, wydajność

NullPointerException GLES20RecordingCanvas.drawBitmap 4.0.3 i 4.0.4 - Android, wydajność

Widziałem raporty o awariach mojej aplikacji w grzesklep i nie mam pojęcia o tym problemie. Chcę zrozumieć, że jeśli używam „hardwareAccelerated false”, czy jest to przydatna metoda ?. lub jaka jest przyczyna tego problemu? jak mogę rozwiązać ten problem. urządzenia z wersjami 4.0.3 i 4.0.4 są napotykane z tą awarią

dziennik awarii: https://gist.github.com/semihozkoroglu/30be3fda7257d002e2fe

java.lang.NullPointerException
at android.view.GLES20RecordingCanvas.drawBitmap(GLES20RecordingCanvas.java:118)
at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:393)
at android.view.View.draw(View.java:10968)
at android.view.ViewGroup.drawChild(ViewGroup.java:2887)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
at com.slidingmenu.lib.CustomViewAbove.dispatchDraw(CustomViewAbove.java:1067)
at android.view.View.draw(View.java:10986)
at android.view.View.getDisplayList(View.java:10422)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
at android.view.View.getDisplayList(View.java:10385)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
at android.view.View.getDisplayList(View.java:10385)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
at android.view.View.getDisplayList(View.java:10385)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
at android.view.View.getDisplayList(View.java:10385)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2597)
at android.view.View.getDisplayList(View.java:10385)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:849)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:1910)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1634)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
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)

Dziękuję Ci.

Odpowiedzi:

0 dla odpowiedzi № 1

Uważam, że możesz rozwiązać ten problem, używając jednego z plików drawBitmap metody, które akceptują prostokąt jako argumentobrazu źródłowego, który chcesz renderować. Jest to błąd występujący w kilku konkretnych wersjach Androida, w których domyślne zachowanie polegające na rysowaniu całego obrazu na kanwie nie działa.

Zakładając, że chcesz narysować całą bitmapę, Twój kod może wyglądać następująco:

canvas.drawBitmap(bitmap, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), bitmapPosition, paint);

0 dla odpowiedzi nr 2

Jeśli używasz animacji, może możesz spróbować opublikować „usuń widok” w wątku interfejsu użytkownika? Spotkałem ten sam stos co ty. Ale myślę, że to jest główna przyczyna.

Jak usunąć widok po zakończeniu animacji?