2

一旦用户通过意图登录并使用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);

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

日志猫:

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

怎么了?

4

2 回答 2

1

这意味着在你膨胀TextView的那个中不存在。Layout检查您的 xml 是否正确拼写了名称。如果您仍然无法修复错误,请发布您在 xml中添加Layout可能的位置。onCreate()既然你TextViewnull你,NPE当你尝试调用setText()它时,你会得到一个

于 2013-03-26T00:39:38.607 回答
1

你确定你之前真的添加了额外的东西吗?从文档

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

我怀疑 getExtras() 方法返回 null,因为在您调用它之前没有向意图添加任何额外内容。

您是直接运行新活动,还是使用意图(设置了附加功能)开始此活动。

或者正如其他人所提到的,问题可能出在您的文本视图上。一个非常简单的测试方法就是注释掉最后一个like。如果这解决了问题,那么问题就是您的文本视图。

于 2013-03-26T00:39:46.710 回答