关闭屏幕时应用程序关闭

时间:2013-04-09 01:10:05

标签: android android-logcat

当我关闭屏幕时,我无法弄清楚为什么我的应用程序是强制关闭,这是logcat 我的应用程序有滚动文本,显示小部件,获取用户位置,有寻呼机,获取当前时间,获取电池级别,所以代码很长,所以现在我只发布logcat,也许你可以想出一些东西就这样 如果您需要一些代码,请告诉我

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

我已将setContentView更改为不同的布局(不同的文件,从旧的复制的内容) 它给了我一个不同的力量

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

当你看到日志“停止”时,当我关闭屏幕时,你会看到“加载变量”它在onCreate中,所以这意味着这次它重新开始但是反正崩溃

更新 我的应用程序在横向模式下运行,因此我的主要布局仅在内部布局内,显然第一个logcat是我只有横向,第二个是我在纵向布局中的时候

更新2 0x7f030004是一个名为numpad.xml的布局,未使用,删除后,该值重新关联到settings.xml,同样的问题

更新3 我已经注释掉了broadcastReceiver,这是我得到的logcat http://pastebin.com/CXYA7bJe

更新4部分解决 好的,所以,第一个logcat是给我的,当我只有横向布局,将它转移到肖像解决了第一个logcat

第二个logcat通过注释掉broadcastReceiver

来解决

这就是broadcastReceiver的样子

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);

它有什么问题吗? 我在onStop()中取消注册它,我也不知道context.unregisterReceiver(this);在那里做了什么,但删除它并没有解决任何问题

更新5 初始化变量

之后

http://pastebin.com/PAuw5fmd

1 个答案:

答案 0 :(得分:1)

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

java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) }似乎很可疑。如果电池电量发生变化,您是否实际注册了广播接收器?

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()?

我越来越倾向于关注broadcastReceiver的问题。

第一次logcat

再次通过logcat判断,我发现找不到资源异常 - Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030004

检查R.java文件指向#0x7f030004的内容,并查看资源是否确实存在。

第二次logcat

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

检查您是否在LauncherActivity中注册了接收器。

更新

尝试将IntentFilter batteryLevelFilter设为全局,然后初始化batteryLevel。我假设这是由于Android无法识别您的Receiver的分辨率范围。