尝试将窗口小部件添加到自定义启动器的NullPointerException

时间:2012-09-26 04:05:57

标签: android android-widget android-4.2-jelly-bean

我在我的应用程序(基本上是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)

我不得不对AOSP启动程序源稍作修改以删除一些私有API使用,以及单独change以便可以放置具有AppWidgetHostView的窗口小部件。除此之外,我正在使用AOSP(API 16)附带的未经修改的启动器版本。

如果您有兴趣自己查看此问题(尝试添加模拟时钟或消息窗口小部件时出现率为100%),source可用。

任何帮助将不胜感激。

0 个答案:

没有答案