我有一个问题,然后尝试使用AppWidgetManager.ACTION_APPWidget_PICK表示意图,从日志中可以看到android AppWidget生态系统内部存在一些问题.
这样我做错了吗?
请参阅下面的示例代码和堆栈跟踪
public class NPEDemoActivity extends Activity { private final static int HOST_CODE = 1024; private AppWidgetHost host; private AppWidgetManager manager; private int PICK_Widget_RC = 1; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); host = new AppWidgetHost(this, HOST_CODE); host.startListening(); manager = AppWidgetManager.getInstance(this); button b = (button)findVIEwByID(R.ID.button01); b.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { int nextID = host.allocateAppWidgetID(); Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWidget_PICK); pickIntent.putExtra(AppWidgetManager.EXTRA_APPWidget_ID, nextID); startActivityForResult(pickIntent, PICK_Widget_RC); } }); } @OverrIDe protected voID onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); }}
日志猫的堆栈跟踪:
10-15 17:33:06.873: ERROR/AndroIDRuntime(821): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androID.settings/com.androID.settings.AppWidgetPickActivity}: java.lang.NullPointerException10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2401)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.app.ActivityThread.access00(ActivityThread.java:116)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.os.Handler.dispatchMessage(Handler.java:99)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.os.Looper.loop(Looper.java:123)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.app.ActivityThread.main(ActivityThread.java:4203)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at java.lang.reflect.Method.invokeNative(Native Method)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at java.lang.reflect.Method.invoke(Method.java:521)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:549)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at dalvik.system.NativeStart.main(Native Method)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): Caused by: java.lang.NullPointerException10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at com.androID.settings.AppWidgetPickActivity.putAppWidgetItems(AppWidgetPickActivity.java:170)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at com.androID.settings.AppWidgetPickActivity.putCustomAppWidgets(AppWidgetPickActivity.java:132)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at com.androID.settings.AppWidgetPickActivity.getItems(AppWidgetPickActivity.java:208)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at com.androID.settings.ActivityPicker.onCreate(ActivityPicker.java:99)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at com.androID.settings.AppWidgetPickActivity.onCreate(AppWidgetPickActivity.java:63)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)10-15 17:33:06.873: ERROR/AndroIDRuntime(821): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2364)
另一个小问题,com.androID.settings驻留在哪个androID项目中? (我被windows卡住了,所以不能不幸使用回购)
帮助真的很感激.
解决方法:
看起来像是androID设置中的错误,如果您尝试在未指定任何其他小部件的情况下选择appWidget,将会失败,并在Google代码link中填充了一个问题
总结以上是内存溢出为你收集整理的java-Android:NPE,同时尝试使用ACTION_APPWIDGET_PICK意向activityForResult全部内容,希望文章能够帮你解决java-Android:NPE,同时尝试使用ACTION_APPWIDGET_PICK意向activityForResult所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)