Home » Android » Random app crashes on Android Wear 5.0.X

Random app crashes on Android Wear 5.0.X

Posted by: admin April 23, 2020 Leave a comment

Questions:

I have a question regarding the newest Android Wear release (5.0.2):

Debugging apps with that version really is a pain because very often the apps crash directly on startup (or soon after that). It doesn’t matter how complex / simple the launched activity is. Launching an activity via voice command increases the chance of a crash.

Every time an app crashes you can find these lines in the log (edit: added logging to the activity lifecycle methods):

04-16 17:22:15.830    1736-1771/? I/ActivityManager﹕ START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x14000000 pkg=some.package.name cmp=some.package.name/.MainActivity} from uid 10003 on display 0
04-16 17:22:15.866    1422-1962/? D/mot_vr_audio_hw﹕ dsp_recognizer_enabled = true
04-16 17:22:15.866    1416-1416/? D/ADSPD﹕ Client cmd=0x0003, size=4
04-16 17:22:15.875    1422-1962/? E/audio_a2dp_hw﹕ adev_set_parameters: ERROR: set param called even when stream out is null
04-16 17:22:15.881    1422-1422/? D/mot_vr_audio_hw﹕ open_input_stream(): devices = 0x80000004, rate = 8000, channels = 0x10
04-16 17:22:15.881    1422-1422/? D/mot_vr_audio_hw﹕ Created resampler for 16000->8000 Hz
04-16 17:22:15.887    1416-1416/? D/ADSPD﹕ Received from DSP: cmd=0x8003, size=2
04-16 17:22:15.887    1416-1416/? D/ADSPD﹕ Client cmd=0x4003, size=2
04-16 17:22:15.892    1422-2055/? D/mot_vr_audio_hw﹕ received recognition control callback, status 0
04-16 17:22:15.898    1422-5214/? I/AudioFlinger﹕ AudioFlingers thread 0xb5a0b008 ready to run
04-16 17:22:15.924    1422-5214/? D/mot_vr_audio_hw﹕ in_read waiting for hotword
04-16 17:22:15.977    1895-1906/? I/art﹕ Background partial concurrent mark sweep GC freed 3006(429KB) AllocSpace objects, 0(0B) LOS objects, 24% free, 1752KB/2MB, paused 762us total 172.698ms
04-16 17:22:16.002    1736-1943/? I/MediaFocusControl﹕ AudioFocus  abandonAudioFocus() from [email protected][email protected]
04-16 17:22:16.023    1422-1664/? D/mot_vr_audio_hw﹕ dsp_recognizer_enabled = false
04-16 17:22:16.023    1416-1416/? D/ADSPD﹕ Client cmd=0x0003, size=4
04-16 17:22:16.033    1422-1664/? E/audio_a2dp_hw﹕ adev_set_parameters: ERROR: set param called even when stream out is null
04-16 17:22:16.045    1416-1416/? D/ADSPD﹕ Received from DSP: cmd=0x8003, size=2
04-16 17:22:16.050    1422-2055/? D/mot_vr_audio_hw﹕ received recognition control callback, status 0
04-16 17:22:16.055    1416-1416/? D/ADSPD﹕ Client cmd=0x0003, size=4
04-16 17:22:16.061    1422-5214/? D/mot_vr_audio_hw﹕ Switching DSP to standby/passthrough mode
04-16 17:22:16.061    1422-5214/? D/mot_vr_audio_hw﹕ Input 0xb88d8e08 ready to read
04-16 17:22:16.073    1416-1416/? D/ADSPD﹕ Received from DSP: cmd=0x8003, size=2
04-16 17:22:16.077    1422-2055/? D/mot_vr_audio_hw﹕ received recognition control callback, status 0
04-16 17:22:16.122    1422-5214/? D/mot_vr_audio_hw﹕ Discarded 10 buffers of leading silence
04-16 17:22:16.130    1416-1416/? D/ADSPD﹕ Client cmd=0x0003, size=4
04-16 17:22:16.136    1422-5214/? D/mot_vr_audio_hw﹕ Re-arming DSP
04-16 17:22:16.136    1422-5214/? D/mot_vr_audio_hw﹕ Input 0xb88d8e08 standby complete
04-16 17:22:16.145    1422-1422/? D/mot_vr_audio_hw﹕ Input 0xb88d8e08 close complete
04-16 17:22:16.148    1416-1416/? D/ADSPD﹕ Received from DSP: cmd=0x8003, size=2
04-16 17:22:16.149    1416-1416/? D/ADSPD﹕ Client cmd=0x4003, size=2
04-16 17:22:16.153    1422-2055/? D/mot_vr_audio_hw﹕ received recognition control callback, status 0
04-16 17:22:16.185    1736-1736/? V/ActivityManager﹕ Display changed displayId=0
04-16 17:22:16.330    1736-1963/? I/art﹕ Explicit concurrent mark sweep GC freed 15352(805KB) AllocSpace objects, 4(64KB) LOS objects, 19% free, 7MB/9MB, paused 1.708ms total 157.135ms
04-16 17:22:16.369    3499-3499/some.package.name D/MainActivity﹕ onCreate(), creating GoogleAPIs client and layout
04-16 17:22:16.419    1736-1943/? I/DisplayManagerService﹕ Display device added: DisplayDeviceInfo{"ActivityViewVirtualDisplay": 320 x 320, 60.0 fps, supportedRefreshRates [], density 213, 213.0 x 213.0 dpi, appVsyncOff 0, presDeadline 16666666, touch NONE, rotation 0, type VIRTUAL, state OFF, owner android (uid 1000), FLAG_OWN_CONTENT_ONLY}
04-16 17:22:16.426    1736-1736/? V/ActivityManager﹕ Display added displayId=1
04-16 17:22:16.463    1736-1736/? V/ActivityManager﹕ Display changed displayId=1
04-16 17:22:16.505    1736-1963/? I/ActivityManager﹕ START u0 {flg=0x18010000 cmp=com.google.android.apps.fitness/com.google.android.wearable.fitness.notifications.NotificationGoalActivity (has extras)} from uid 10014 on display 1
04-16 17:22:16.589    1736-1943/? W/InputMethodManagerService﹕ Window already focused, ignoring focus gain of: [email protected] attribute=null, token = [email protected]
04-16 17:22:16.685    3499-3499/some.package.name D/MainActivity﹕ onStart(), connecting to GoogleAPIs
04-16 17:22:16.685    3499-3499/some.package.name D/MainActivity﹕ onResume()
04-16 17:22:16.685    3499-3499/some.package.name D/MainActivity﹕ onPostResume()
04-16 17:22:16.843    3499-3499/some.package.name D/MainActivity﹕ connected to GoogleAPIs
04-16 17:22:16.944    1736-1763/? I/ActivityManager﹕ Displayed some.package.name/.MainActivity: +765ms
04-16 17:22:17.773    3499-3499/some.package.name D/ViewRootImpl﹕ changeCanvasOpacity: opaque=true
04-16 17:22:17.779    3499-3499/some.package.name D/MainActivity﹕ onStop(), disconnecting from GoogleAPIs
04-16 17:22:17.955    2217-5216/? D/OpenGLRenderer﹕ Render dirty regions requested: true
04-16 17:22:17.974    2217-2217/? D/Atlas﹕ Validating map...
04-16 17:22:18.057    2217-5216/? I/OpenGLRenderer﹕ Initialized EGL, version 1.4
04-16 17:22:18.057    2217-5216/? W/OpenGLRenderer﹕ Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
04-16 17:22:18.074    2217-5216/? D/OpenGLRenderer﹕ Enabling debug mode 0
04-16 17:22:18.257    1736-1763/? I/DisplayManagerService﹕ Display device changed: DisplayDeviceInfo{"ActivityViewVirtualDisplay": 320 x 320, 60.0 fps, supportedRefreshRates [], density 213, 213.0 x 213.0 dpi, appVsyncOff 0, presDeadline 16666666, touch NONE, rotation 0, type VIRTUAL, state ON, owner android (uid 1000), FLAG_OWN_CONTENT_ONLY}
04-16 17:22:18.261    1736-1736/? V/ActivityManager﹕ Display changed displayId=1
04-16 17:22:18.282    1736-1763/? I/ActivityManager﹕ Displayed com.google.android.apps.fitness/com.google.android.wearable.fitness.notifications.NotificationGoalActivity: +584ms
04-16 17:22:19.849    1736-1799/? D/TaskPersister﹕ removeObsoleteFile: deleting file=779_task.xml
04-16 17:22:22.004    2137-2197/? W/bt-btif﹕ dm_pm_timer expires
04-16 17:22:22.004    2137-2197/? W/bt-btif﹕ dm_pm_timer expires 0
04-16 17:22:22.004    2137-2197/? W/bt-btif﹕ proc dm_pm_timer expires
04-16 17:22:25.273    2137-2197/? W/bt-btif﹕ dm_pm_timer expires
04-16 17:22:25.273    2137-2197/? W/bt-btif﹕ dm_pm_timer expires 0
04-16 17:22:25.274    2137-2197/? W/bt-btif﹕ proc dm_pm_timer expires
04-16 17:22:25.807    1736-1765/? I/PowerManagerService﹕ Going to sleep due to screen timeout (uid 1000)...
04-16 17:22:25.824    3499-3499/some.package.name E/ActivityThread﹕ Performing pause of activity that is not resumed: {some.package.name/some.package.name.MainActivity}
java.lang.RuntimeException: Performing pause of activity that is not resumed: {some.package.name/some.package.name.MainActivity}
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3196)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3184)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3159)
at android.app.ActivityThread.access$1000(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-16 17:22:25.824    3499-3499/some.package.name D/MainActivity﹕ onPause()
04-16 17:22:25.868    1736-1765/? I/DreamManagerService﹕ Entering dreamland.
04-16 17:22:25.868    1736-1765/? I/PowerManagerService﹕ Dozing...
04-16 17:22:25.880    3499-3499/some.package.name E/ActivityThread﹕ Performing stop of activity that is not resumed: {some.package.name/some.package.name.MainActivity}
java.lang.RuntimeException: Performing stop of activity that is not resumed: {some.package.name/some.package.name.MainActivity}
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3309)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3390)
at android.app.ActivityThread.access$1100(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-16 17:22:25.886    1736-1760/? I/DreamController﹕ Starting dream: name=ComponentInfo{com.google.android.wearable.app/com.google.android.clockwork.home.AmbientMode}, isTest=false, canDoze=true, userId=0
04-16 17:22:25.931    1736-1736/? E/InputMethodManagerService﹕ Ignoring setImeWindowStatus due to an invalid token. uid:1000 token:null
04-16 17:22:25.941    1736-1736/? E/InputMethodManagerService﹕ Ignoring setImeWindowStatus due to an invalid token. uid:1000 token:null
04-16 17:22:25.956    1736-1961/? I/ActivityManager﹕ START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.google.android.wearable.app/com.google.android.clockwork.home.HomeActivity (has extras)} from uid 10003 on display 0

Does anyone know a solution / workaround for this bug?

Thanks in advance

How to&Answers:

The bug was fixed in Android Wear 5.1.1.

Answer:

I don’t think this is a memory leak. You would recognize those with OutOfMemoryExceptions or garbage collector dumps in case the collector spends more than 3 seconds ‘collecting’.

In this case, your log states that the app crashes because you pause or stop an activity that was not resumed. Are you by accident calling onPause or onStop yourself ?