2016-07-24 2 views
0

Я слежу за учебным пособием для Android Studio на официальном сайте Android Dev, чтобы создать простое приложение для обмена сообщениями (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 Line 16 ... Доля DisplayMessageActivity.java исходный код – W0rmH0le

ответ

0

Согласно примеру, что вы использовали, вы должны сделать:

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

Так, может быть, ты не начал свою деятельность должным образом и это намерение является недействительным. .. Так что, попробуйте добавить пустую проверку указателя:

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

Кроме того, обновить свой вопрос с DisplayMessageActivity и код MainActivity .. Тогда, я могу помочь вам решить эту проблему должным образом.

+0

После обнаружения помощь из другого источника (и отсутствии) я просто полностью переписали код. Он работает сейчас, но спасибо за предложения! –

0

Посмотрите ниже log:

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) 

Это означает, что вы пытаетесь вызвать функцию getStringExtra из null объекта в строке 16 в файле DisplayMessageActivity.java. Вы должны проверить, чтобы в этой строке не было NPE.

0

Исключительное исключение указателя бросается, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра нулевого объекта.
  2. Доступ или изменение поля нулевого объекта.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов нулевого значения, как если бы это был массив.
  5. Бросание нуль, как если бы это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные виды использования нулевого объекта.

Вы можете найти больше на этом link. Click Here

Смежные вопросы