2016-06-16 1 views
2

Я работаю над приложением в Android Studio, которое по какой-то причине постоянно выдает сообщение об ошибке «К сожалению, MyApp остановился». Это произойдет, только если я запустил приложение, внесите изменения в код , пока он работает, а затем попробуйте запустить его снова. Если я остановлю задачу «Запуск» и запустил ее снова, я не получу эту ошибку.Мое приложение падает, когда я запускаю его из Android Studio после внесения изменений, пока он уже запущен

Вот лог:

06-14 15:54:06.213 25752-25752/com.myapp E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.myapp, PID: 25752 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.activity_host}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.myapp.MB_item.getItemId()' on a null object reference 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077) 
    at android.app.ActivityThread.-wrap15(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350) 
    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 com.myapp.MB_item.getItemId()' on a null object reference 
    at com.myapp.BT_screen_menuButtons$override.onCreateView(MB_screen_menuButtons.java:119) 
    at com.myapp.BT_screen_menuButtons$override.access$dispatch(MB_screen_menuButtons.java) 
    at com.myapp.BT_screen_menuButtons.onCreateView(MB_screen_menuButtons.java:0) 
    at android.app.Fragment.performCreateView(Fragment.java:2220) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:973) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1130) 
    at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1953) 
    at android.app.FragmentController.dispatchActivityCreated(FragmentController.java:152) 
    at android.app.Activity.performCreateCommon(Activity.java:6232) 
    at android.app.Activity.performCreate(Activity.java:6239) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077)  
    at android.app.ActivityThread.-wrap15(ActivityThread.java)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)  
    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) 

Почему код ведут себя по-разному только на последующих запусках и не тогда, когда я сначала запустить приложение?

Дополнительный код:

Это линия (119 из MB_screen_menuButtons.java), который бросает ошибку. screenData.getItemId() явно там, где передается пустое значение, но я не понимаю, почему он был бы равен нулю во время обновления Instant Run.

debugger.showIt(fragmentName + ":onCreateView JSON itemId: \"" + screenData.getItemId() + "\" itemType: \"" + screenData.getItemType() + "\" itemNickname: \"" + screenData.getItemNickname() + "\""); 
+5

У вас есть '' NullPointerException' на MB_screen_menuButtons.java' в строке 119. Вы должны размещать код этой функции по крайней мере, мы можем помочь вам – Sunshinator

+0

Дай мне несколько минут, чтобы получить возможность отправлять этот код. Можете ли вы рассказать, что я опубликовал до сих пор, почему это произойдет только при последовательных запусках, а не при первом запуске? – Derek

+0

@Kon: Я знаю, что у меня есть исключение NullPointerException. Я не знаю, почему это происходит только при последовательных сборках приложения. Как я упоминал в сообщении, это не происходит, когда я запускаю приложение в эмуляторе. Это происходит, только если я запустил его, не останавливая начальный прогон. – Derek

ответ

2

Это, как представляется, проблема с Instant Run несовместимыми с чем-то в вашем коде - потенциально библиотека, которая генерирует код.

Вы можете отключить Instant Run и исправить эту проблему:

Preferences> Сборка, выполнение, развертывание> Instant Run> Снимите флажок "Включить автозагрузку Выполнить"

Если вы хотите сохранить «Мгновенный запуск» можно просто «Не проверять» «Действия перезапуска при изменении кода»

Предпочтения> Сборка, выполнение, развертывание> Мгновенный запуск> Снимите флажок «Восстановить активность при изменении кода»

+0

Это, похоже, именно там, где проблема происходит. Не знакомый с Instant Run, мне трудно понять, какая разница между Instant Run и регулярным прогоном. Я полагаю, что мои единственные варианты, помимо отключения Instant Run, должны продолжать отслеживать код до самого источника? Есть ли способ установить точку останова, которая выполняется только во время мгновенного запуска?Мне тяжело обертывать голову тем, как отлаживать что-то, что заменяется мгновенным запуском. Я мог бы это преувеличивать. – Derek

+0

У меня была аналогичная проблема, я использовал 2.2 предварительный просмотр. Ошибка продолжалась еще через один день, перезапуск андроид-студии, похоже, исправил ее временно – PowerMan2015

+0

@ PowerMan2015 - проблема * имеет *, чтобы быть с моим кодом, правда? Я не могу себе представить, что это проблема с Instant Run. – Derek

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