我正在发送变量,一旦用户通过意图登录并使用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
有什么问题?
答案 0 :(得分:1)
这意味着您已膨胀的TextView
中不存在Layout
。检查你的xml是否拼写了正确的名称。如果您仍然无法修复错误,请在Layout
和xml中发布可能导致onCreate()
膨胀的位置。由于您的TextView
为null
,当您尝试在其上发送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。一个非常简单的测试方法就是评论最后一个。如果这可以解决问题,那就是问题的文本视图。