Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android appwidget崩溃进程com.Android.settings在Android v2.1上,需要解决_Android_Android Appwidget - Fatal编程技术网

Android appwidget崩溃进程com.Android.settings在Android v2.1上,需要解决

Android appwidget崩溃进程com.Android.settings在Android v2.1上,需要解决,android,android-appwidget,Android,Android Appwidget,我正在开发一个android appwidget,它在我尝试过的所有android版本(emulator 1.5、1.6、2.3)中都运行良好,但在2.1(物理设备,LG GT540升级到2.1)中没有。我在三星GT I5801 2.1操作系统上测试了它,它运行正常,可能是因为2.1版本的版本较旧(或者是三星自己添加了补丁) 顺便说一句,我认为这是对我所指的确切错误的修复: 这是一篇讨论同样问题的老文章: 当我尝试在主屏幕上加载小部件时(实际上是在我单击“小部件”按钮时发生的),我得到以下错

我正在开发一个android appwidget,它在我尝试过的所有android版本(emulator 1.5、1.6、2.3)中都运行良好,但在2.1(物理设备,LG GT540升级到2.1)中没有。我在三星GT I5801 2.1操作系统上测试了它,它运行正常,可能是因为2.1版本的版本较旧(或者是三星自己添加了补丁)

顺便说一句,我认为这是对我所指的确切错误的修复:

这是一篇讨论同样问题的老文章:

当我尝试在主屏幕上加载小部件时(实际上是在我单击“小部件”按钮时发生的),我得到以下错误:

应用程序设置(process com.android.Settings)已停止 意外地请再试一次

使用“强制关闭”按钮

请参阅下面的logcat输出。顺便说一下,当我的appwidget还没有安装时,这种情况不会发生,在2.1模拟器上也会发生

我到处都找遍了,有很多人提到这一点。开发人员,但主要是用户,一般的结论是,这是安卓2.1操作系统中的一个缺陷。例如,即使是谷歌自己的maps appwidget也会导致这种崩溃

现在我知道有一些AppWidget可以在2.1上正常工作。所以必须有一个解决办法。我只是不知道是什么。我在这里看到了一些建议(很抱歉,我现在找不到链接),appwidget需要多个小部件才能工作。我的现在实际上有两个文本视图,但我也尝试了一个文本视图和一个图像按钮。两者都不起作用

我当然可以避免2.1,但我更希望这个appwidget能够在尽可能多的android版本上工作(目前我还不能升级我的GT540),而且我不愿意接受失败。:-)

Logcat stacktrace:

I/ActivityManager(   58): Starting activity: Intent { act=android.appwidget.action.APPWIDGET_PICK cmp=com.android.settings/.AppWidgetPickActivity (has extras) }
W/InputManagerService(   58): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44d5d458
D/AndroidRuntime(  229): Shutting down VM
W/dalvikvm(  229): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
E/AndroidRuntime(  229): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(  229): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.AppWidgetPickActivity}: java.lang.NullPointerException
E/AndroidRuntime(  229):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
E/AndroidRuntime(  229):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
E/AndroidRuntime(  229):    at android.app.ActivityThread.access$2200(ActivityThread.java:119)
E/AndroidRuntime(  229):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
E/AndroidRuntime(  229):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  229):    at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  229):    at android.app.ActivityThread.main(ActivityThread.java:4363)
E/AndroidRuntime(  229):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  229):    at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(  229):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime(  229):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime(  229):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(  229): Caused by: java.lang.NullPointerException
E/AndroidRuntime(  229):    at com.android.settings.ActivityPicker$IconResizer.createIconThumbnail(ActivityPicker.java:364)
E/AndroidRuntime(  229):    at com.android.settings.ActivityPicker$PickAdapter$Item.<init>(ActivityPicker.java:226)
E/AndroidRuntime(  229):    at com.android.settings.AppWidgetPickActivity.putAppWidgetItems(AppWidgetPickActivity.java:185)
E/AndroidRuntime(  229):    at com.android.settings.AppWidgetPickActivity.putInstalledAppWidgets(AppWidgetPickActivity.java:226)
E/AndroidRuntime(  229):    at com.android.settings.AppWidgetPickActivity.getItems(AppWidgetPickActivity.java:207)
E/AndroidRuntime(  229):    at com.android.settings.ActivityPicker.onCreate(ActivityPicker.java:98)
E/AndroidRuntime(  229):    at com.android.settings.AppWidgetPickActivity.onCreate(AppWidgetPickActivity.java:63)
E/AndroidRuntime(  229):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(  229):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
E/AndroidRuntime(  229):    ... 11 more
I/Process (   58): Sending signal. PID: 229 SIG: 3
I/dalvikvm(  229): threadid=7: reacting to signal 3
I/dalvikvm(  229): Wrote stack trace to '/data/anr/traces.txt'
E/ActivityThread(   58): Failed to find provider info for android.server.checkin
E/Checkin (   58): Error reporting crash: java.lang.IllegalArgumentException: Unknown URL content://android.server.checkin/crashes
W/ActivityManager(   58): Activity idle timeout for HistoryRecord{44c1fd30 com.android.settings/.AppWidgetPickActivity}
I/ActivityManager(58):启动活动:Intent{act=android.appwidget.action.appwidget\u PICK cmp=com.android.settings/.AppWidgetPickActivity(有附加项)}
W/InputManagerService(58):窗口已聚焦,忽略:com.android.internal.view.IInputMethodClient$Stub的聚焦增益$Proxy@44d5d458
D/AndroidRuntime(229):关闭虚拟机
W/dalvikvm(229):threadid=3:线程退出时出现未捕获异常(组=0x4001b188)
E/AndroidRuntime(229):未捕获处理程序:由于未捕获异常而退出主线程
E/AndroidRuntime(229):java.lang.RuntimeException:无法启动活动组件信息{com.android.settings/com.android.settings.AppWidgetPickActivity}:java.lang.NullPointerException
E/AndroidRuntime(229):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
E/AndroidRuntime(229):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
E/AndroidRuntime(229):位于android.app.ActivityThread.access$2200(ActivityThread.java:119)
E/AndroidRuntime(229):位于android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
E/AndroidRuntime(229):位于android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(229):位于android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(229):位于android.app.ActivityThread.main(ActivityThread.java:4363)
E/AndroidRuntime(229):位于java.lang.reflect.Method.Invokenactive(本机方法)
E/AndroidRuntime(229):位于java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(229):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime(229):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime(229):位于dalvik.system.NativeStart.main(本机方法)
E/AndroidRuntime(229):由以下原因引起:java.lang.NullPointerException
E/AndroidRuntime(229):位于com.android.settings.ActivityPicker$IConReser.createIconThumbnail(ActivityPicker.java:364)
E/AndroidRuntime(229):位于com.android.settings.ActivityPickAdapter$Item。(ActivityPicker.java:226)
E/AndroidRuntime(229):位于com.android.settings.AppWidgetPickActivity.putAppWidgetItems(AppWidgetPickActivity.java:185)
E/AndroidRuntime(229):位于com.android.settings.AppWidgetPickActivity.putInstalledAppWidgets(AppWidgetPickActivity.java:226)
E/AndroidRuntime(229):位于com.android.settings.AppWidgetPickActivity.getItems(AppWidgetPickActivity.java:207)
E/AndroidRuntime(229):位于com.android.settings.ActivityPicker.onCreate(ActivityPicker.java:98)
E/AndroidRuntime(229):位于com.android.settings.AppWidgetPickActivity.onCreate(AppWidgetPickActivity.java:63)
E/AndroidRuntime(229):位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(229):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
E/AndroidRuntime(229):。。。还有11个
I/进程(58):发送信号。PID:229信号:3
I/dalvikvm(229):线程ID=7:对信号3作出反应
I/dalvikvm(229):将堆栈跟踪写入“/data/anr/traces.txt”
E/ActivityThread(58):未能找到android.server.checkin的提供商信息
E/Checkin(58):错误报告崩溃:java.lang.IllegalArgumentException:未知URLcontent://android.server.checkin/crashes
W/ActivityManager(58):历史记录{44c1fd30 com.android.settings/.AppWidgetPickActivity}的活动空闲超时
舱单:

<?xml version="1.0" encoding="utf-8"?>
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.example.exampleapp"
    android:versionCode="1"
    android:versionName="1.0"
    android:debuggable="true">
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <application 
       android:label="exampleapp">
           <receiver 
               android:name="ExampleWidgetProvider" >
               <intent-filter>
                  <action 
                      android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                </intent-filter>
                <meta-data 
                    android:name="android.appwidget.provider"
                    android:resource="@xml/example_appwidget_info" />
           </receiver>
     </application>
    <uses-sdk android:minSdkVersion="3" />
</manifest>

我建议您仔细检查应用程序清单,因为您的小部件应用程序似乎会在应用程序实际实例化之前导致选取器死亡。在这一点上,清单就是所有正在使用的东西。你的应用程序元素应该有一个接收者,该接收者带有处理android.appwidget.action.appwidget\u更新的意图过滤器,并且在接收者元素中有一个声明提供者资源的元数据元素。

我建议你在使用时仔细检查应用程序清单