NullPointerException: intento de leer en el campo ''int android.view.View.mViewFlags''
viewgroup (2)
En general, no es una buena idea mezclar versiones de diferentes bibliotecas de soporte, ya que tienen interdependencias que pueden no funcionar en todas las versiones.
Intentaría actualizarlos todos a 23.2.1, en lugar de mezclar 23.0, 23.1 y 23.2
Mi aplicación estaba funcionando bien, y luego incluí la biblioteca de diseño de soporte en build.gradle
compile ''com.android.support:design:23.2.1''
Android Studio solicitó descargar más componentes y luego comencé a ver demasiados de estos bloqueos cuando la navegación b / n diferentes fragmentos
FATAL EXCEPTION: main
Process: com.presdo.match.matchtemplate, PID: 23339
java.lang.NullPointerException: Attempt to read from field ''int android.view.View.mViewFlags'' on a null object reference
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3197)
at android.view.View.draw(View.java:15234)
at android.widget.FrameLayout.draw(FrameLayout.java:598)
at android.view.View.updateDisplayListIfDirty(View.java:14167)
at android.view.View.getDisplayList(View.java:14189)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368)
at android.view.View.updateDisplayListIfDirty(View.java:14127)
at android.view.View.getDisplayList(View.java:14189)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368)
at android.view.View.updateDisplayListIfDirty(View.java:14127)
at android.view.View.getDisplayList(View.java:14189)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368)
at android.view.View.updateDisplayListIfDirty(View.java:14127)
at android.view.View.getDisplayList(View.java:14189)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368)
at android.view.View.updateDisplayListIfDirty(View.java:14127)
at android.view.View.getDisplayList(View.java:14189)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368)
at android.view.View.updateDisplayListIfDirty(View.java:14127)
at android.view.View.getDisplayList(View.java:14189)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368)
at android.view.View.updateDisplayListIfDirty(View.java:14127)
at android.view.View.getDisplayList(View.java:14189)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3389)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368)
at android.view.View.updateDisplayListIfDirty(View.java:14127)
at android.view.View.getDisplayList(View.java:14189)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:273)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:279)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:318)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2530)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2352)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1982)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Este es mi build.gradle
compile ''com.android.support:appcompat-v7:23.2.1''
compile ''com.android.support:recyclerview-v7:+''
compile ''com.android.support:cardview-v7:23.+''
compile ''com.android.support:support-v4:23.0.0''
compile ''com.android.support:percent:23.1.1''
compile ''com.android.support:multidex:1.0.0''
compile ''com.android.support:palette-v7:23.1.0''
Ya lo he visto y todavía no estoy seguro si tiene algo que ver con mi código.
Ahora, incluso si elimino la biblioteca de soporte de diseño de google, veo los bloqueos y no puedo predecir cuándo se producen, ya que no hay referencia a la base de código de mi proyecto en la pila.
Cualquier ayuda es apreciada.
ACTUALIZAR
Realicé cambios en el Gradle para que las versiones de la biblioteca de soporte fueran consistentes, y ya no veo los bloqueos. Aquí hay un fragmento
ext {
supportLibVersion = ''23.2.1''
}
dependencies {
compile "com.android.support:appcompat-v7:${supportLibVersion}"
compile "com.android.support:recyclerview-v7:${supportLibVersion}"
compile "com.android.support:cardview-v7:${supportLibVersion}"
compile "com.android.support:support-v4:${supportLibVersion}"
compile "com.android.support:percent:${supportLibVersion}"
compile "com.android.support:palette-v7:${supportLibVersion}"
compile "com.android.support:design:${supportLibVersion}"
...
}
Es (nuevamente) un problema de animación. Probablemente tengas algunas animaciones personalizadas con
fragmentTransaction.setCustomAnimations();
Eliminarlos y funciona de nuevo. Felicidades, ahora tienes transiciones de fragmentos como hace 5 años.
Editar: una mejor manera es restaurar su antiguo repositorio, mediante la descarga
http://dl.google.com/android/repository/android_m2repository_r26.zip
y reemplazando todo en
/Users/.../Library/Android/sdk/extras/android/m2repository
Lo tomó desde aquí .