当前位置: 首页 > 面试题库 >

Android:NPE,同时尝试使用ACTION_APPWIDGET_PICK意向activityForResult

姬向明
2023-03-14
问题内容

我有一个问题,然后试图说明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.NullPointerException
10-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.access$2100(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.NullPointerException
10-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卡住了,所以不能遗憾地使用repo)帮助真的很感激。


问题答案:

看起来像是Android设置中的错误,如果您尝试在未指定任何额外小部件的情况下尝试选择appwidget,将会失败,请在Google代码链接中填写问题



 类似资料:
  • 问题内容: 我正在尝试分解通过网站上的API获得的数组,Java已将其检索为。 引发A。由于某种原因,它确实不喜欢。我尝试将其转义为,但它表示这是非法的转义。 转义此字符串的正确方法是什么? 问题答案: 由于某种原因,它确实不喜欢},{。 这是因为大括号(和)是Java正则表达式中的特殊字符。如果您尝试不加转义地直接使用它们,则将其视为语法错误,因此是您的例外。 转义此字符串的正确方法是什么? 通

  • 因此,我尝试使用coinbase API。我正在尝试一个简单的测试,看看我是否可以让它工作,但我得到了各种作曲家的错误。 目前,我得到意外的t'use'为这个代码: 那么,我的使用声明在错误的地方吗?我在索引函数和类之外尝试过它们。两者产生的结果与此完全不同。 在Keks班之外,我得到了 致命错误:在第15行的/home/content/61/11420661/html/beta/applicat

  • 问题内容: 当我尝试使用示例之一提取图像时,在运行时出现以下异常: 这是最后两行中发生异常的代码部分: 问题答案: 在您的lib目录中添加commons-logging-1.1.1.jar或jcl-over-slf4j-1.7.6.jar。

  • ...在Xcode控制台,我得到 它演示了建立了连接并成功找到了服务器,但其他问题出现了。会很感激你的帮助。

  • 问题内容: 我尝试反序列化包含null属性并具有的对象。 我做的事: 但是 :如果扔掉财产-一切正常!我的意思是传递下一个字符串: 问题 :如何避免此异常或保证杰克逊在序列化期间忽略空值? 抛出: 信息: 原因: 原因: 问题答案: 如果您不想序列化值,则可以使用以下设置(序列化期间): 希望这能解决您的问题。 但是反序列化过程中获得的结果对我来说似乎很可疑(理想情况下,杰克逊应该能够处理序列化输

  • 我正在使用Context.SendorderedBroadcast方法发送广播,并在到达ResultReceiver之前检查是否有人收到了广播。 下面是一段代码: 到目前为止,我只在搭载Android 2.1版本的摩托罗拉Defy手机上遇到过这种情况,但它也可能发生在其他手机上。 我在网上找不到任何关于它的参考资料,有人知道为什么会这样吗?谢谢!