意图崩溃我的应用程序

时间:2013-03-26 00:30:06

标签: java android android-intent

我正在发送变量,一旦用户通过意图登录并使用Bundle接收它。

我已经检查了LogCat并且我收到了变量但是一旦收到它,应用程序崩溃了....下面是我的代码。

Bundle bundle = getIntent().getExtras();
    final int cameraId = 0;
    final TextView welcomeText = (TextView) findViewById(R.id.WelcomeText);
    final TextView relocationId = (TextView) findViewById(R.id.RelocationID);
    final TextView addressOne = (TextView) findViewById(R.id.addressOne);
    final TextView addressTwo = (TextView) findViewById(R.id.addressTwo);
    final String RelocationId = bundle.getString("UID");
    relocationId.setText("Your Relocation: #" + RelocationId);

这是我的包在接收端看起来像(但崩溃后)。如果我注释掉最后两行,它会像往常一样继续。

logcat的:

03-25 18:35:50.749: E/AndroidRuntime(19145): FATAL EXCEPTION: main
03-25 18:35:50.749: E/AndroidRuntime(19145): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.testingapp/com.testingapp.MoveContactsActivity}: java.lang.NullPointerException
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.app.ActivityThread.access$600(ActivityThread.java:140)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.os.Looper.loop(Looper.java:137)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.app.ActivityThread.main(ActivityThread.java:4898)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at java.lang.reflect.Method.invokeNative(Native Method)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at java.lang.reflect.Method.invoke(Method.java:511)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at dalvik.system.NativeStart.main(Native Method)
03-25 18:35:50.749: E/AndroidRuntime(19145): Caused by: java.lang.NullPointerException
03-25 18:35:50.749: E/AndroidRuntime(19145):    at com.testingapp.MoveContactsActivity.onCreate(MoveContactsActivity.java:69)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.app.Activity.performCreate(Activity.java:5206)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-25 18:35:50.749: E/AndroidRuntime(19145):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
03-25 18:35:50.749: E/AndroidRuntime(19145):    ... 11 more

有什么问题?

2 个答案:

答案 0 :(得分:1)

这意味着您已膨胀的TextView中不存在Layout。检查你的xml是否拼写了正确的名称。如果您仍然无法修复错误,请在Layout和xml中发布可能导致onCreate()膨胀的位置。由于您的TextViewnull,当您尝试在其上发送NPE时,您会收到setText()

答案 1 :(得分:1)

您确定之前已经添加了额外内容吗?从文档

Returns the map of all extras previously added with putExtra(), 
or null if none have been added.

我怀疑getExtras()方法返回null,因为在调用intent之前没有添加额外的内容。

您是直接运行新活动,还是使用意图启动此活动(设置了额外内容)。

或者正如其他人提到的那样,问题可能是你的textview。一个非常简单的测试方法就是评论最后一个。如果这可以解决问题,那就是问题的文本视图。