Ich habe den Absturz unten (über Crashlytics) gesehen, aber war nicht in der Lage, die Ursache zu identifizieren oder den Absturz zu reproduzieren. Es kommt auf einer Vielzahl von Geräten und Android-Versionen vor. Die App verwendet appcompat-v7: 23.2.1. Sieht es sonst noch jemand? Wie Sie sehen können, tritt der Absturz innerhalb der onCreate()
Methode von HomeActivity
auf, die android.support.v7.app.AppCompatActivity
erweitert. Innerhalb von AppCompatDelegateImplV7.createSubDecor
gibt der Aufruf an mWindow.findViewById(android.R.id.content)
manchmal null zurück. Dies führt wiederum zu einer NullPointerException in Zeile 475. Für mich ist das eine Race-Bedingung innerhalb des AppCompat-Codes.Intermittierende NullPointerException von AppCompatDelegateImplV7.createSubDecor()
Derselbe Absturz tritt in einer anderen Aktivität auf und beide verwenden CoordinatorLayout als ihr Stammlayoutelement. Dieses Element wurde ungefähr zu der Zeit eingeführt, als der Absturz auftauchte, und ich kann nicht anders, als mich zu fragen, ob es eine Verbindung gibt. Hier
ist der relevante Teil des Stapels:
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.ViewGroup.getChildCount()' on a null object reference
at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:475)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:309)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:273)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.bleacherreport.android.teamstream.activities.HomeActivity.onCreate(HomeActivity.java:181)
Absturz tritt auch bei den folgenden Versionen von appcompat-v7 auf: 23.1.1; 23.2.0; 23.3.0 – markproxy
CoordinatorLayout scheint nicht auf den Absturz bezogen zu sein; das zu beseitigen, ließ den Absturz nicht verschwinden. Seltsamerweise macht das Herunterstufen von Play Services von 8,4 auf 7,8 den Absturz zunichte. Da ich mir nicht vorstellen kann, wie es eine direkte Verbindung geben könnte, muss ich davon ausgehen, dass Play Services 8.4 einen Zeitunterschied verursacht, der die Wahrscheinlichkeit erhöht, dass eine Wettlaufsituation ausgelöst wird. – markproxy
Eingereichter Problembericht an Google: https://code.google.com/p/android/issues/detail?id=207638&thanks=207638&ts=1461213833 – markproxy