2

現在、ユーザーがインテントを介してログインし、バンドルで受信すると、変数を送信しています。

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);

これは、受信側でのMyバンドルの外観です(ただし、後でクラッシュします)。最後の2行をコメントアウトすると、通常どおり続行されます。

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

なにが問題ですか?

4

2 に答える 2

1

これは、膨らませたものにがTextView存在しないことを意味します。Layout名前のスペルが正しいことをxmlで確認してください。それでもエラーを修正できない場合は、LayoutおそらくonCreate()とxmlで膨らませた場所に投稿してください。あなたTextViewはあなたがそれを呼び出そうとするとnullあなたが得るのでNPEsetText()

于 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を返しているのではないかと思います。これは、呼び出す前にインテントに追加が追加されていないためです。

新しいアクティビティを直接実行していますか、それともインテントを使用してこのアクティビティを開始していますか(エクストラが設定されています)。

または、他の人が述べているように、問題はあなたのテキストビューかもしれません。これをテストする本当に簡単な方法は、最後のようなものをコメントアウトすることです。これで問題が解決した場合は、そのテキストビューに問題があります。

于 2013-03-26T00:39:46.710 に答える