2011-08-16 9 views
1

私はアンドロイドappwidgetで作業しています。すべてのアンドロイドバージョンで正常に動作しました(エミュレータ1.5,1.6,2.3)。 2.1(物理デバイス、LG GT540は2.1にアップグレードされました)。私は2.1のOSを搭載したSamsung GT I5801を新鮮な状態でテストしたが、それはおそらく特定のリビジョン2.1バージョンが古くなっている(またはサムスン自身が修正を追加した)からだ。私がしようとすると Android:NPE while trying to activityForResult with ACTION_APPWIDGET_PICK intentAndroid appwidgetがプロセスcom.android.settingsをクラッシュし、アンドロイドv2.1で回避する必要があります


https://android.googlesource.com/platform/packages/apps/Settings/+/7be5137e12ba58cebae634f640379599acdb491a

そしてこれは、同じ問題を議論古いスレッドです:ところで

は、この私が思うには、私が言及しています正確なバグの修正です「強制CLに

The application Settings (process com.android.settings) has stopped unexpectedly. Please try again.

:ホームスクリーン上のウィジェットをロードするために、私は次のエラーを取得する(実際には、私は、「ウィジェット」ボタンをクリックしたときに起こります) ose "ボタンを押します。

以下のlogcat出力を参照してください。ところで、これは私のappwidgetがまだインストールされていないときには起こらず、2.1エミュレータでも起こります。

私はどこでも検索しており、これに言及する人がたくさんいます。開発者だが、主にユーザーであり、一般的な結論は、Android 2.1 OSのバグだということです。たとえば、Google独自のマップappwidgetでもこのクラッシュが発生します。

2.1でうまく動作するappwidgetsがあることは知っています。だから、回避策が必要です。私はちょうど何がわからない。 appwidgetが複数のウィジェットを必要とするため、私はここに提案を読みました(申し訳ありませんがリンクを見つけることができません)。 Mineは実際には2つのtextviewsを持っていますが、私はtextviewとimage buttonを1つ試してみました。どちらも動作しません。

私は当然ながら2.1を避けることができますが、私はむしろ、このappwidgetができるだけ多くのアンドロイド版で作業したいと思っています(私はまだGT540をアップグレードできません)。 :-)

Logcatスタックトレース:

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: [email protected] 
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} 

マニフェスト:

<?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> 
+2

@asegあなたのlogcatは "便利"ではありませんが、あなたの質問に答える必要があります。また、他のサイトからこのエラーが報告されています。リンクがありますか? – Phil

+0

リンク:例:(http://www.google.com/support/forum/p/Google%20Mobile/thread?tid=2b15283faf73f876&hl=ja)および(http://community.o2online.ie/t5/Android/LG-Optimus-help/td-p/189604) – aseq

答えて

0

この問題は、しばらく前には消えました。他の場所で提案されている回避策は、あなたのappwidgetに複数のウィジェットを持つことでした。私は実際にそれをしましたが、問題は持続しました。しかし、それから姿を消した。私はappwidgetを拡張して機能を追加していました.3つのウィジェットが追加されました。

私が時間を見つけたら、私は慎重に私のリビジョンをチェックして、問題が消えた時点を見ます。それから私は自分自身の問題に「自分自身を修正するまで、もっと多くのものを加える」よりもうまく答えてもらうことができます。 ;-)

1

あなたのウィジェットアプリがあなたの前に、ピッカーが死ぬことを引き起こしているように見えるように私はあなたが非常に慎重にアプリケーションマニフェストを調べることをお勧めappは実際にインスタンス化されます。その時点でマニフェストはすべて使用されています。アプリケーション要素には、android.appwidget.action.APPWIDGET_UPDATEを処理するインテントフィルターを持つ受信者と、受信者要素内にプロバイダーリソースを宣言するメタデータ要素が必要です。

+0

元の投稿にマニフェストを追加しました。このマニフェストは、1.5や2.3などの他のバージョンで正常に動作します。 – aseq

+0

マニフェストが問題だとは思わない。これはandroid v2.1のバグです。私は回避策を探しています。 – aseq

+0

+1この問題では提案が機能しないにもかかわらず、有用なものです – aseq

関連する問題