First, I updated WhatsApp to 2.21.2.19 but it didn’t help.
I found instructions from TJC - How to help debug android support - and gave lxc-attach -n aliendalvik -- /system/bin/logcat
a spin. I think I caught the error:
D GmsGcmRegister: onBind: Intent { act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gms }
E AndroidRuntime: FATAL EXCEPTION: WhatsApp Worker #1
E AndroidRuntime: Process: com.whatsapp, PID: 4239
E AndroidRuntime: java.lang.IllegalStateException: Bandwidth module disabled
E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:1958)
E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1918)
E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1868)
E AndroidRuntime: at android.net.INetworkStatsService$Stub$Proxy.openSessionForUsageStats(INetworkStatsService.java:271)
E AndroidRuntime: at android.app.usage.NetworkStats.<init>(NetworkStats.java:108)
E AndroidRuntime: at android.app.usage.NetworkStatsManager.querySummary(NetworkStatsManager.java:280)
E AndroidRuntime: at X.1ad.A02(:316389)
E AndroidRuntime: at X.1ad.A01(:316384)
E AndroidRuntime: at X.0RE.A00(:149190)
E AndroidRuntime: at X.0RE.A00(:149154)
E AndroidRuntime: at X.0Rb.<init>(:150436)
E AndroidRuntime: at java.lang.RunnableEBaseShape1S0200000_I0_0.run(:148673)
E AndroidRuntime: at java.lang.RunnableEBaseShape4S0200000_I0_3.run(:27302)
E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E AndroidRuntime: at java.lang.RunnableEBaseShape4S0200000_I0_3.run(:27294)
E AndroidRuntime: at java.lang.Thread.run(Thread.java:764)
E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
E AndroidRuntime: at com.android.server.net.NetworkStatsService.assertBandwidthControlEnabled(NetworkStatsService.java:1699)
E AndroidRuntime: at com.android.server.net.NetworkStatsService.openSessionInternal(NetworkStatsService.java:544)
E AndroidRuntime: at com.android.server.net.NetworkStatsService.openSessionForUsageStats(NetworkStatsService.java:523)
E AndroidRuntime: at android.net.INetworkStatsService$Stub.onTransact(INetworkStatsService.java:62)
E AndroidRuntime: at android.os.Binder.execTransact(Binder.java:731)
E AndroidRuntime:
W ActivityManager: Force finishing activity com.whatsapp/.Main
So I guess WhatsApp tries to log/track/monitor bandwidth usage, and fails miserably (Java.lang.IllegalStateException: Bandwidth module disabled
) because the implementation is a stub (android.net.INetworkStatsService$Stub$Proxy.openSessionForUsageStats()
) but I don’t know Jack about Android development, so…
One question rises: is this something that’s supposed to be implemented in Alien Dalvik, or could this be MicroG?
What follows is what I suspect to be a logging error:
E SQLiteDatabase: Error inserting _id=1 key_id=-1 chat_row_id=-1 from_me=0
E SQLiteDatabase: android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: message._id (code 1555 SQLITE_CONSTRAINT_PRIMARYKEY)
E SQLiteDatabase: at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
E SQLiteDatabase: at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:796)
E SQLiteDatabase: at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
E SQLiteDatabase: at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
E SQLiteDatabase: at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1564)
E SQLiteDatabase: at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1433)
E SQLiteDatabase: at X.08L.A0C(:49746)
E SQLiteDatabase: at X.08L.AA0(:50637)
E SQLiteDatabase: at X.08F.A08(:49464)
E SQLiteDatabase: at X.01n.A01(:26032)
E SQLiteDatabase: at X.1HQ.run(:279899)
E SQLiteDatabase: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E SQLiteDatabase: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E SQLiteDatabase: at java.lang.RunnableEBaseShape4S0200000_I0_3.run(:27294)
E SQLiteDatabase: at java.lang.Thread.run(Thread.java:764)