2016-10-25 2 views
0

Я пытаюсь интегрировать видеоролик Sinch в мое приложение, поэтому я просто скопировал все эти действия и макеты из Sinch Video-Call Demo App, и он отлично работал. Теперь я пытаюсь удалить LoginActivity, чтобы вызов установил с использованием по умолчанию жестко закодированного userName вместо того, чтобы получать его от EditText. И я только вносил изменения в файлы макета LoginActivity.java и login.xml.Android - Не могу найти причину для NullPointerException

Но теперь, как только эта активность запускается, она вылетает с этой ошибкой.

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.yankee.cw/com.example.yankee.cw.LoginActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setEnabled(boolean)' on a null object reference 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2462) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2522) 
                      at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:148) 
                      at android.app.ActivityThread.main(ActivityThread.java:5471) 
                      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 'void android.widget.Button.setEnabled(boolean)' on a null object reference 

Но нигде во всем коде есть setEnabled называется на любой Button объекта. Вот ссылка на исходный файл макета login.xml. И вот мой login.xml. Оригинал LoginActivity.java и мой LoginActivity.java

Извините, это может показаться глупым вопросом, но я пробовал все, что мог, в коде за последние 5 часов, и я все еще не мог найти причину проблемы, потому что нет звоните в setEnabled в любом месте всего кода. Спасибо.

+0

'Порядковый номер 28 и 39 'имеют вызовы' loginButton.setEnabled (booleanVal) '. Тем не менее, 'Line Number 39' в' LoginActivity.java', скорее всего, испустит 'NullPointerException'. Либо инициализируйте его там, либо положите условие 'if (loginButton! = Null)' перед рукой. –

+0

Единственное, что приходит мне на ум, это то, что вы НЕ используете свой LoginActivity, но оригинальный. Внимательно проверьте свои 'import'. – Merlevede

+0

@RishabhDuttSharma Вы говорите об исходном LoginActivity.java, мои строки прокомментированы. – Yankee

ответ

1

После прочтения ваших модификаций и базовый репозитория проекта в вопросе, я думаю, что причина NullPointerException заключается в следующем:

после запуска LoginActivity немедленно следует выполнению с LoginActivity#loginClicked(), который начинается права следующая выездная деятельность

private void openPlaceCallActivity() { 
    Intent mainActivity = new Intent(this, PlaceCallActivity.class); 
    startActivity(mainActivity); 
} 

... в android.app.ActivityThread.performLaunchActivity ...

PlaceCallActivity расширяет BaseActivity который изменяет жизненный цикл обслуживания, таким образом, может быть, призывающую к PlaceCallActivity#onServiceConnected перед PlaceCallActivity#onCreate ... который по совпадению может иметь не инициализирован mCallButton

PlaceCallActivity # onServiceConnected

@Override 
     protected void onServiceConnected() { 
      TextView userName = (TextView) findViewById(R.id.loggedInName); 
      userName.setText(getSinchServiceInterface().getUserName()); 
      mCallButton.setEnabled(true); // <--- might try changing this? 
     } 
+0

Спасибо, Иван. Хотя я использовал Double Shift для поиска всех вхождений 'setEnabled', но он не показывал мне ничего, кроме тех, которые из определения классов Android. Это избавляет от ошибки, но теперь я возвращаюсь к другой ошибке, с которой я столкнулся. Но позвольте мне сначала попытаться решить эту проблему. Еще раз спасибо. – Yankee

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