For a while now I’ve been trying to identify a significant increase in the crash rate in my apps when I compile with build 3692 or later, even with 3696.
With build 3691 or lower the crash rate of my apps is below the threshold, but when compiling with later versions without making any source code changes, the crash rate is upper 3%, even up to 8% in some apps!
Discarding possible causes, I have eliminated the use of the “media” library that in some parts of the code had remained (now use only the “audio” library throughout the code), but still compiling with Build 3695 and 3696 the failure rate keep up.
As an example with one of my apps, this is what happens to me:
Although in this app I went from Build 3690 to 3695. In other of my apps from compiling with Build 3692 it is where the increase in failures occurs.
Even without making any change in the source code. If compile with Build 3691 there are no problems. When compiling with Build 3692 or later it is where the increase occurs.
This has happened to someone? Is any SDK problem?
These are the most relevant failures of aab 38 (Build 3696)
**Stack tracking: java.lang.NullPointerException**
Exception java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Configuration android.content.res.Resources.getConfiguration()' on a null object reference
at android.app.ActivityThread.updateLocaleListFromAppContext (ActivityThread.java:6472)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6710)
at android.app.ActivityThread.access$1500 (ActivityThread.java:258)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2042)
at android.os.Handler.dispatchMessage (Handler.java:107)
at android.os.Looper.loop (Looper.java:213)
at android.app.ActivityThread.main (ActivityThread.java:7967)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:503)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:938)
**Stack tracking: java.lang.IllegalArgumentException**
Exception java.lang.IllegalArgumentException: parameter must be a descendant of this view
at android.view.ViewGroup.offsetRectBetweenParentAndChild (ViewGroup.java:6305)
at android.view.ViewGroup.offsetDescendantRectToMyCoords (ViewGroup.java:6224)
at android.view.ViewRootImpl.scrollToRectOrFocus (ViewRootImpl.java:4480)
at android.view.ViewRootImpl.draw (ViewRootImpl.java:4046)
at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:3890)
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:3152)
at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:2005)
at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:8234)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:972)
at android.view.Choreographer.doCallbacks (Choreographer.java:796)
at android.view.Choreographer.doFrame (Choreographer.java:731)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:957)
at android.os.Handler.handleCallback (Handler.java:938)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:223)
at android.app.ActivityThread.main (ActivityThread.java:7945)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:603)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:947)
**Stack tracking:java.lang.IllegalStateException (This also happens with Build 3691 or previous)**
Exception java.lang.IllegalStateException: The file system on the device is in a bad state. WorkManager cannot access the app's internal data store.
at androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:128)
at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:764)
Caused by android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14 SQLITE_CANTOPEN): Could not open database
at android.database.sqlite.SQLiteConnection.nativeOpen
at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:211)
at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:195)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked (SQLiteConnectionPool.java:503)
at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:204)
at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:196)
at android.database.sqlite.SQLiteDatabase.openInner (SQLiteDatabase.java:880)
at android.database.sqlite.SQLiteDatabase.open (SQLiteDatabase.java:865)
at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:739)
at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:729)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked (SQLiteOpenHelper.java:355)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:298)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase (FrameworkSQLiteOpenHelper.java:145)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase (FrameworkSQLiteOpenHelper.java:106)
at androidx.room.RoomDatabase.inTransaction (RoomDatabase.java:476)
at androidx.room.RoomDatabase.assertNotSuspendingTransaction (RoomDatabase.java:281)
at androidx.work.impl.model.SystemIdInfoDao_Impl.getWorkSpecIds (SystemIdInfoDao_Impl.java:120)
at androidx.work.impl.background.systemjob.SystemJobScheduler.reconcileJobs (SystemJobScheduler.java:298)
at androidx.work.impl.utils.ForceStopRunnable.cleanUp (ForceStopRunnable.java:249)
at androidx.work.impl.utils.ForceStopRunnable.forceStopRunnable (ForceStopRunnable.java:215)
at androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:110)