3

アプリ(基本的にはAOSPのJelly Bean Launcher)でupdateAppWidgetSize()を呼び出した後、NullPointerExceptionが発生します

出力は次のとおりです。

09-26 00:47:34.681: E/AndroidRuntime(2026): FATAL EXCEPTION: main
09-26 00:47:34.681: E/AndroidRuntime(2026): java.lang.NullPointerException
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.os.Parcel.readException(Parcel.java:1431)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.os.Parcel.readException(Parcel.java:1379)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.android.internal.appwidget.IAppWidgetService$Stub$Proxy.updateAppWidgetOptions(IAppWidgetService.java:535)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.appwidget.AppWidgetManager.updateAppWidgetOptions(AppWidgetManager.java:353)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.appwidget.AppWidgetHostView.updateAppWidgetOptions(AppWidgetHostView.java:256)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.appwidget.AppWidgetHostView.updateAppWidgetSize(AppWidgetHostView.java:245)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.launcherjellybean.android.AppWidgetResizeFrame.updateWidgetSizeRanges(AppWidgetResizeFrame.java:339)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.launcherjellybean.android.LauncherAppWidgetInfo.notifyWidgetSizeChanged(LauncherAppWidgetInfo.java:84)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.launcherjellybean.android.Launcher.completeAddAppWidget(Launcher.java:1153)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.launcherjellybean.android.Launcher.addAppWidgetImpl(Launcher.java:1591)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.launcherjellybean.android.Launcher.addAppWidgetFromDrop(Launcher.java:1653)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.launcherjellybean.android.Workspace$8.run(Workspace.java:3071)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.launcherjellybean.android.Workspace$9.run(Workspace.java:3266)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.launcherjellybean.android.DragLayer$3.onAnimationEnd(DragLayer.java:628)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1018)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.animation.ValueAnimator.access$400(ValueAnimator.java:51)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:623)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:639)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.view.Choreographer.doCallbacks(Choreographer.java:555)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.view.Choreographer.doFrame(Choreographer.java:524)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.os.Handler.handleCallback(Handler.java:615)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.os.Looper.loop(Looper.java:137)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at android.app.ActivityThread.main(ActivityThread.java:4745)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at java.lang.reflect.Method.invokeNative(Native Method)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at java.lang.reflect.Method.invoke(Method.java:511)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-26 00:47:34.681: E/AndroidRuntime(2026):     at dalvik.system.NativeStart.main(Native Method)

プライベートAPIの使用を削除するために、AOSPランチャーソースに若干の変更を加える必要がありました。また、AppWidgetHostViewを持つウィジェットを配置できるように別の変更を加える必要がありました。それとは別に、私はAOSP(API 16)に付属しているランチャーの変更されていないバージョンを使用しています。

この問題を自分で確認したい場合は、ソースを利用できます(Analog ClockウィジェットまたはMessagesウィジェットを追加しようとした場合の発生率は100%です)。

どんな助けでもいただければ幸いです。

4

0 に答える 0