2016-07-24 14 views
0

私は公式Android DevサイトでAndroidスタジオのトレーニングチュートリアルに従って、簡単な「メッセージング」アプリ(link to tutorial)を作成しています。私は "私の最初のアプリを作る"の終わりに達しました。アプリをクラッシュさせる「送信ボタン」をクリックすると、メッセージの内容は無関係です。私は私の電話とエミュレータで試しました。 はここでエラーコードです:ボタンがクラッシュする

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.john.myfirstapp, PID: 3180 
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.john.myfirstapp/com.john.myfirstapp.DisplayMessageActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference 
    at com.john.myfirstapp.DisplayMessageActivity.<init>(DisplayMessageActivity.java:16) 
    at java.lang.Class.newInstance(Native Method) 
    at android.app.Instrumentation.newActivity(Instrumentation.java:1067) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2317) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:148)  
    at android.app.ActivityThread.main(ActivityThread.java:5417)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Androidのメーカーはまた、私は、この行に提案ました:

getSupportActionBarを()setDisplayHomeAsUpEnabled(真)。

それは述べている: 'getSupportActionBar()setDisplayHomeAsUpEnabled(真)'

メソッドの呼び出しは 'java.lang.NullPointerExceptionが'

を生成することが、私はそれがにISNことをかなり確信していますかっこや見落としのような小さな間違い。

すべてのヘルプは高く評価され:)

+1

で詳細を見つけることができます別のソースからいくつかの助けを見つけること(そして失敗)した後、私はちょうど完全に書き直しDisplayMessageActivity.javaライン16 ...シェアDisplayMessageActivity.javaソースコード – W0rmH0le

答えて

0

例によると、あなたが使用している、あなたが行う必要があります。

Intent intent = getIntent(); 
String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE); 

だから、多分、あなたが適切に活動を開始していないと、この意図はnullです。その後、私はあなたが適切にこの問題を解決するのに役立つことができます..また

Intent intent = getIntent(); 
String message = ""; 
if(intent != null) 
    message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE); 

をDisplayMessageActivityとMainActivityコードをあなたの質問を更新..だから、NULLポインタのチェックを追加してみてください。 log以下で

+0

をコード。とにかく、今は動作しますが、提案に感謝します! –

0

ルック:ファイルDisplayMessageActivity.javaに行16nullオブジェクトから機能getStringExtraを呼び出そうとしているわけ

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference 
at com.john.myfirstapp.DisplayMessageActivity.<init>(DisplayMessageActivity.java:16) 

。その行にNPEが表示されないようにしてください。

0

オブジェクトが必要な場合にアプリケーションがnullを使用しようとすると、NULLポインタ例外がスローされます。これらは次のとおりです。

  1. nullオブジェクトのインスタンスメソッドを呼び出します。
  2. nullオブジェクトのフィールドへのアクセスまたは変更。
  3. nullの長さを配列のように見ます。
  4. ヌルのスロットを配列のようにアクセスまたは変更する。
  5. Throwable値であるかのようにnullをスローします。

アプリケーションは、このオブジェクトの他の不正な使用を示すために、このクラスのインスタンスをスローする必要があります。

あなたはクラッシュがここに起こっているこのlink. Click Here

関連する問題