2016-03-24 9 views
4

Meine App fein gearbeitet, und ich eingeschlossen dann die Unterstützung Design-Bibliothek in der build.gradleNullpointer: Versuch von Feld zu lesen ‚int android.view.View.mViewFlags‘

compile 'com.android.support:design:23.2.1' 

Android Studio aufgefordert, mehr Komponenten herunterladen und danach begann ich viel zu viele dieser Abstürze zu sehen, wenn die Navigation b/w verschiedene Fragmente

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) 

Das ist mein build.gradle ist

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' 

Ich habe mir schon this angesehen und bin mir noch nicht sicher, ob es etwas mit meinem Code zu tun hat.

Jetzt, auch wenn ich die Google Design-Support-Bibliothek entferne, sehe ich die Abstürze und nicht vorhersagen, wann sie passieren, da es keinen Verweis auf die Code-Basis meines Projekts im Stacktrace gibt.

Jede Hilfe wird geschätzt.

UPDATE

ich Änderungen an der Gradle die Unterstützung Bibliotheksversionen konsistent zu machen, und ich die Abstürze nicht mehr sehen. Hier ist ein Ausschnitt

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}" 
    ... 
} 

Antwort

1

Es ist im Allgemeinen keine gute Idee Versionen von verschiedenen Support-Bibliotheken zu mischen, da sie Abhängigkeiten haben, die nicht über Versionen funktionieren.

Ich würde versuchen, sie alle zu 23.2.1 aktualisieren, anstatt 23,0 Mischen 23,1 & 23,2

+0

Danke Steve. Dies hat mein Problem gelöst. Ich habe sie jetzt alle auf 23.2.1 gesetzt. –

3

Es ist (wieder) eine Animation Thema. Sie haben wahrscheinlich einige benutzerdefinierte Animationen eingestellt mit

Entfernen Sie sie und es funktioniert wieder. Herzlichen Glückwunsch, Sie haben jetzt Fragmentübergänge wie vor 5 Jahren.

Edit: ein besserer Weg ist Ihr altes Repository wiederherzustellen, durch

Download

http://dl.google.com/android/repository/android_m2repository_r26.zip

und ersetzt alles in

/Users/.../Library/Android/sdk/extras/android/m2repository 

nahm es von here.

+0

Ja, es gibt customAnimations s/w-Fragmente. Es ist so gemacht 'FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.setCustomAnimations (R.anim.slide_in_left_fast, R.anim.slide_out_left_fast); fragmentTransaction.replace (R.id.content_container, ); fragmentTransaction.addToBackStack (null); fragmentTransaction.commit(); ' Ich bin neugierig zu wissen, warum Sie erwähnt haben" Sie haben jetzt Fragmentübergänge wie vor 5 Jahren." –

+0

Sie müssen die benutzerdefinierten Animationen entfernen. Wenn Sie keine Animationen laufen, wird es funktionieren. Aber es wird wie Android von vor 5 Jahren aussehen, schlecht, ohne Animationen. Es war ... ein Witz. – ElDuderino

+0

Hah! In Ordnung:) Es stellte sich heraus, dass es Probleme mit der Verwendung verschiedener Versionen der Support-Bibliothek gab. –