2015-04-02 122 views
34

我有一个关于最新的Android Wear版本(5.0.2)一个问题:随机的应用程序崩溃

调试应用程序与该版本确实是一个痛苦,因为很多时候直接在应用程序在启动时崩溃(或之后不久)。启动活动的复杂程度和简单程度并不重要。通过语音命令启动活动增加了崩溃的可能性。

每次应用程序崩溃,你可以在日志中找到这些行(编辑:新增登录到活动生命周期方法):

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 

有谁知道这个错误的解决方案/解决方法吗?

在此先感谢

+0

任何机会:onCreate或onResume中的startActivity? – Selvin 2015-04-02 10:03:27

+0

没有。我甚至用一个'空'的活动来尝试它,它只是膨胀一个包含单个TextView的布局...... – 2015-04-02 10:08:49

+0

对不起,我从来没有写过Wear应用程序。您可能会考虑覆盖生命周期方法并进行一些日志记录,以查看哪些方法会调用哪些对象实例,以确定发生了什么问题。 – CommonsWare 2015-04-13 13:14:00

回答

1

该错误在Android Wear 5.1.1中修复。

0

我不认为这是内存泄漏。如果收集器花费超过3秒的“收集时间”,您将识别出那些带有OutOfMemoryException或垃圾收集器转储的人。

在这种情况下,您的日志指出应用程序崩溃是因为您暂停或停止了未恢复的活动。你是否意外地打电话给你自己或onStop?