简体   繁体   中英

App force closing when turning screen off

I can't figure out why my app is forceclosing when i turn off the screen, this is the logcat My app has scrolling text, displays widgets, gets user location, has a pager, gets the current time, gets the battery level, so the code is pretty long so for now i'll post only the logcat, maybe you can figure something out just with that If you need some pieces of code let me know

04-09 02:57:56.498: D/Evolution Launcher(16574): Stopping
04-09 02:57:56.623: W/IInputConnectionWrapper(16574): getExtractedText on inactive InputConnection
04-09 02:57:56.639: W/IInputConnectionWrapper(16574): getTextBeforeCursor on inactive InputConnection
04-09 02:57:56.655: W/IInputConnectionWrapper(16574): getSelectedText on inactive InputConnection
04-09 02:57:56.662: W/IInputConnectionWrapper(16574): getTextAfterCursor on inactive InputConnection
04-09 02:57:56.670: W/IInputConnectionWrapper(16574): getExtractedText on inactive InputConnection
04-09 02:57:56.670: W/IInputConnectionWrapper(16574): getTextBeforeCursor on inactive InputConnection
04-09 02:57:56.850: D/dalvikvm(16574): GC_EXPLICIT freed 1120K, 6% free 20548K/21696K, paused 3ms+13ms, total 140ms
04-09 02:57:56.959: W/IInputConnectionWrapper(16574): getExtractedText on inactive InputConnection
04-09 02:57:57.053: W/ResourceType(16574): Failure getting entry for 0x7f030004 (t=2 e=4) in package 0 (error -75)
04-09 02:57:57.053: D/AndroidRuntime(16574): Shutting down VM
04-09 02:57:57.053: W/dalvikvm(16574): threadid=1: thread exiting with uncaught exception (group=0x41356930)
04-09 02:57:57.069: E/AndroidRuntime(16574): FATAL EXCEPTION: main
04-09 02:57:57.069: E/AndroidRuntime(16574): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.doublep.evolution/com.doublep.evolution.LauncherActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030004
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3692)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.ActivityThread.access$700(ActivityThread.java:141)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1240)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.os.Looper.loop(Looper.java:137)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.ActivityThread.main(ActivityThread.java:5041)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at java.lang.reflect.Method.invokeNative(Native Method)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at java.lang.reflect.Method.invoke(Method.java:511)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at dalvik.system.NativeStart.main(Native Method)
04-09 02:57:57.069: E/AndroidRuntime(16574): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030004
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.content.res.Resources.getValue(Resources.java:1014)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2139)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.content.res.Resources.getLayout(Resources.java:853)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.Activity.setContentView(Activity.java:1881)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at com.doublep.evolution.LauncherActivity.onCreate(LauncherActivity.java:455)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.Activity.performCreate(Activity.java:5104)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-09 02:57:57.069: E/AndroidRuntime(16574):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-09 02:57:57.069: E/AndroidRuntime(16574):    ... 12 more
04-09 02:57:57.116: I/Process(16574): Sending signal. PID: 16574 SIG: 9

I've changed the setContentView to a different layout (different file, copied content from the old one) and it gives me a different forceclosing

04-09 03:34:25.514: D/dalvikvm(18864): GC_EXPLICIT freed 1259K, 6% free 20440K/21728K, paused 2ms+7ms, total 36ms
04-09 03:34:28.553: D/Evolution Launcher(18864): Stopping
04-09 03:34:28.756: W/IInputConnectionWrapper(18864): getExtractedText on inactive InputConnection
04-09 03:34:28.772: W/IInputConnectionWrapper(18864): getTextBeforeCursor on inactive InputConnection
04-09 03:34:28.780: W/IInputConnectionWrapper(18864): getSelectedText on inactive InputConnection
04-09 03:34:28.780: W/IInputConnectionWrapper(18864): getTextAfterCursor on inactive InputConnection
04-09 03:34:28.780: W/IInputConnectionWrapper(18864): getExtractedText on inactive InputConnection
04-09 03:34:28.787: W/IInputConnectionWrapper(18864): getTextBeforeCursor on inactive InputConnection
04-09 03:34:28.795: W/IInputConnectionWrapper(18864): getExtractedText on inactive InputConnection
04-09 03:34:28.795: W/IInputConnectionWrapper(18864): getTextBeforeCursor on inactive InputConnection
04-09 03:34:28.803: W/IInputConnectionWrapper(18864): getSelectedText on inactive InputConnection
04-09 03:34:28.803: W/IInputConnectionWrapper(18864): getTextAfterCursor on inactive InputConnection
04-09 03:34:28.811: W/IInputConnectionWrapper(18864): getExtractedText on inactive InputConnection
04-09 03:34:28.819: W/IInputConnectionWrapper(18864): getTextBeforeCursor on inactive InputConnection
04-09 03:34:28.819: W/IInputConnectionWrapper(18864): getSelectedText on inactive InputConnection
04-09 03:34:28.826: W/IInputConnectionWrapper(18864): getTextAfterCursor on inactive InputConnection
04-09 03:34:28.834: W/IInputConnectionWrapper(18864): beginBatchEdit on inactive InputConnection
04-09 03:34:28.834: W/IInputConnectionWrapper(18864): endBatchEdit on inactive InputConnection
04-09 03:34:28.834: W/IInputConnectionWrapper(18864): getExtractedText on inactive InputConnection
04-09 03:34:28.834: W/IInputConnectionWrapper(18864): getTextBeforeCursor on inactive InputConnection
04-09 03:34:28.842: W/IInputConnectionWrapper(18864): getSelectedText on inactive InputConnection
04-09 03:34:28.842: W/IInputConnectionWrapper(18864): getTextAfterCursor on inactive InputConnection
04-09 03:34:28.858: W/IInputConnectionWrapper(18864): beginBatchEdit on inactive InputConnection
04-09 03:34:28.858: W/IInputConnectionWrapper(18864): endBatchEdit on inactive InputConnection
04-09 03:34:29.569: D/dalvikvm(18864): GC_FOR_ALLOC freed 1154K, 7% free 21232K/22604K, paused 51ms, total 66ms
04-09 03:34:29.819: D/dalvikvm(18864): GC_FOR_ALLOC freed 201K, 7% free 23846K/25416K, paused 25ms, total 25ms
04-09 03:34:30.170: D/dalvikvm(18864): GC_FOR_ALLOC freed 3K, 6% free 26556K/28128K, paused 21ms, total 24ms
04-09 03:34:30.420: D/Evolution Launcher(18864): Loading variables
04-09 03:34:30.420: D/Evolution Launcher(18864): Restoring prefs
04-09 03:34:30.420: D/Evolution Launcher(18864): Screen density actions
04-09 03:34:30.467: W/IInputConnectionWrapper(18864): getExtractedText on inactive InputConnection
04-09 03:34:30.475: I/Choreographer(18864): Skipped 71 frames!  The application may be doing too much work on its main thread.
04-09 03:34:30.631: E/ActivityThread(18864): Activity com.doublep.evolution.LauncherActivity has leaked IntentReceiver com.doublep.evolution.LauncherActivity$4@42858a78 that was originally registered here. Are you missing a call to unregisterReceiver()?
04-09 03:34:30.631: E/ActivityThread(18864): android.app.IntentReceiverLeaked: Activity com.doublep.evolution.LauncherActivity has leaked IntentReceiver com.doublep.evolution.LauncherActivity$4@42858a78 that was originally registered here. Are you missing a call to unregisterReceiver()?
04-09 03:34:30.631: E/ActivityThread(18864):    at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:795)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:596)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1316)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.app.ContextImpl.registerReceiver(ContextImpl.java:1296)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.app.ContextImpl.registerReceiver(ContextImpl.java:1290)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:423)
04-09 03:34:30.631: E/ActivityThread(18864):    at com.doublep.evolution.LauncherActivity.batteryLevel(LauncherActivity.java:144)
04-09 03:34:30.631: E/ActivityThread(18864):    at com.doublep.evolution.LauncherActivity.access$0(LauncherActivity.java:116)
04-09 03:34:30.631: E/ActivityThread(18864):    at com.doublep.evolution.LauncherActivity$1.run(LauncherActivity.java:985)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.os.Handler.handleCallback(Handler.java:725)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.os.Looper.loop(Looper.java:137)
04-09 03:34:30.631: E/ActivityThread(18864):    at android.app.ActivityThread.main(ActivityThread.java:5041)
04-09 03:34:30.631: E/ActivityThread(18864):    at java.lang.reflect.Method.invokeNative(Native Method)
04-09 03:34:30.631: E/ActivityThread(18864):    at java.lang.reflect.Method.invoke(Method.java:511)
04-09 03:34:30.631: E/ActivityThread(18864):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-09 03:34:30.631: E/ActivityThread(18864):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-09 03:34:30.631: E/ActivityThread(18864):    at dalvik.system.NativeStart.main(Native Method)
04-09 03:34:30.701: W/IInputConnectionWrapper(18864): getTextBeforeCursor on inactive InputConnection
04-09 03:34:30.701: D/AndroidRuntime(18864): Shutting down VM
04-09 03:34:30.701: W/dalvikvm(18864): threadid=1: thread exiting with uncaught exception (group=0x41356930)
04-09 03:34:30.709: E/AndroidRuntime(18864): FATAL EXCEPTION: main
04-09 03:34:30.709: E/AndroidRuntime(18864): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) } in com.doublep.evolution.LauncherActivity$4@42858a78
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.os.Handler.handleCallback(Handler.java:725)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.os.Looper.loop(Looper.java:137)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.app.ActivityThread.main(ActivityThread.java:5041)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at java.lang.reflect.Method.invokeNative(Native Method)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at java.lang.reflect.Method.invoke(Method.java:511)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at dalvik.system.NativeStart.main(Native Method)
04-09 03:34:30.709: E/AndroidRuntime(18864): Caused by: java.lang.IllegalArgumentException: Receiver not registered: com.doublep.evolution.LauncherActivity$4@42858a78
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:657)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1339)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:445)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at com.doublep.evolution.LauncherActivity$4.onReceive(LauncherActivity.java:121)
04-09 03:34:30.709: E/AndroidRuntime(18864):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:758)
04-09 03:34:30.709: E/AndroidRuntime(18864):    ... 9 more
04-09 03:34:30.741: I/Process(18864): Sending signal. PID: 18864 SIG: 9

Where you see the log "Stopping" it's when i turn off the screen, where you see "loading variables" it's in the onCreate, so it mean this time it's restarting but crashes anyways

UPDATE: My app runs in landscape mode, so my main layout is inside land-layout only, apparently the first logcat is when i have only the landscape, the second one is when i have it inside the portrait layout

Update 2 0x7f030004 is a layout called numpad.xml which is not used, after deleting it, the value got reassociated to settings.xml, same problem

UPDATE 3 I've commented out the broadcastReceiver, this is the logcat i get http://pastebin.com/CXYA7bJe

UPDATE 4 PARTIALLY SOLVED Ok, so, the first logcat was given to me when i had the layout only in landscape, transferring it to portrait solved the first logcat

The second logcat is solved by commenting out the broadcastReceiver

This is how the broadcastReceiver looks like

batteryLevelReceiver = new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                context.unregisterReceiver(this);
                int rawlevel = intent.getIntExtra("level", -1);
                int scale = intent.getIntExtra("scale", -1);
                int level = -1;
                if (rawlevel >= 0 && scale > 0) {
                    level = (rawlevel * 100) / scale;
                }
                if (animToBattery == true) {
                    if (animValue < level * 1.8) {
                        animValue = animValue +2;
                    }
                    else {
                        animToBattery = false;
                    }
                    ArcView.value = (float)(animValue);
                }
                else {
                    ArcView.value = (float)(level * 1.8);
                }

            }
        };
        IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        registerReceiver(batteryLevelReceiver, batteryLevelFilter);

Is there something wrong with it? I'm unregistering it in onStop(), also i don't know what that context.unregisterReceiver(this); is doing up there but deleting it doesn't solve anything

UPDATE 5 After initializing the variable

http://pastebin.com/PAuw5fmd

Caused by: java.lang.IllegalArgumentException: Receiver not registered: com.doublep.evolution.LauncherActivity$4@42858a78

and java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) } seem fishy. Have you actually registered a broadcast receiver if battery levels change?

Activity com.doublep.evolution.LauncherActivity has leaked IntentReceiver com.doublep.evolution.LauncherActivity$4@42858a78 that was originally registered here. Are you missing a call to unregisterReceiver()?

I'm leaning more and more towards the fact that there's a problem with the broadcastReceiver.

Judging by the logcat again, I see that there's a resource not found exception - Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030004

Check what the R.java file points to as #0x7f030004 and see if the resource actually exists.

Caused by: java.lang.IllegalArgumentException: Receiver not registered: com.doublep.evolution.LauncherActivity$4@42858a78

Check if you've registered the receiver in LauncherActivity.

Try making IntentFilter batteryLevelFilter global and then initializing it batteryLevel . I'm assuming it was due to scope of resolution that Android doesn't recognize your Receiver.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM