2013-02-14 2 views
1


Я создал простое приложение для Android и правильно работает на Android-эмуляторе.
Однако, когда я что-то меняю (добавив переменную, например) и нажимаю «Выполнить», он отправляет файл apk в эмулятор, и он говорит: «К сожалению, MyApplication перестала работать», а затем перезапустила его, и он работает отлично.
Я проверил журнал, и он не имеет ничего общего с моим приложением, он жалуется на некоторые NullException в загрузчике APK. Я перезапустил эмулятор и Eclipse, также я использую последнюю версию SDK для сборки своего приложения, мой уровень API-интерфейса равен 8, цель - 16.
Я не использую собственный код.
счетный журнал ошибок здесь:Android Эмулятор всегда выбрасывает исключение при перезагрузке приложения

 
02-14 12:55:43.541: E/AndroidRuntime(723): FATAL EXCEPTION: main 
02-14 12:55:43.541: E/AndroidRuntime(723): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.app.LoadedApk.makeApplication(LoadedApk.java:501) 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4124) 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.app.ActivityThread.access$1300(ActivityThread.java:130) 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255) 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.os.Looper.loop(Looper.java:137) 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.app.ActivityThread.main(ActivityThread.java:4745) 
02-14 12:55:43.541: E/AndroidRuntime(723): at java.lang.reflect.Method.invokeNative(Native Method) 
02-14 12:55:43.541: E/AndroidRuntime(723): at java.lang.reflect.Method.invoke(Method.java:511) 
02-14 12:55:43.541: E/AndroidRuntime(723): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
02-14 12:55:43.541: E/AndroidRuntime(723): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
02-14 12:55:43.541: E/AndroidRuntime(723): at dalvik.system.NativeStart.main(Native Method) 
02-14 12:55:43.541: E/AndroidRuntime(723): Caused by: java.lang.NullPointerException 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:377) 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.app.LoadedApk.getClassLoader(LoadedApk.java:320) 
02-14 12:55:43.541: E/AndroidRuntime(723): at android.app.LoadedApk.makeApplication(LoadedApk.java:493) 
02-14 12:55:43.541: E/AndroidRuntime(723): ... 11 more 

+0

Вы делите идентификатор пользователя с другим пакетом, используя атрибут sharedUserId в вашем AndroidManifest.xml? –

+0

Я не вижу атрибута _sharedUserId_. Мое приложение состоит из 5 действий, и когда я использую «Назад» к основному действию, он не падает. Однако, когда я использую Run, находясь во внутренней активности, это исключение присутствует. – Nestor

ответ

0

Вы должны убить приложение, прежде чем запустить его снова. Я не знаю другого способа сделать это. Вы не можете одновременно выполнять два одинаковых процесса. Я предполагаю, что в то время, когда он работает хорошо, но второй раз, это не так.

Возможно, вы можете запустить другой экземпляр эмулятора, но это НЕ рекомендуется.

+0

Но почему _Eclipse_ не посылает сигнал KILL, если _Eclipse_ отправляет другой экземпляр приложения? И как я могу его убить? – Nestor

+0

Вы можете просто убить приложение изнутри Android (обычно в настройках) или просто выйти из приложения с помощью кнопки back или homebutton. Удостоверьтесь, что у вас нет активных действий в одно и то же время. Я думаю, вы можете сравнить его с программой, которая работает и занимать некоторые порты в Интернете или что-то в этом случае, если порт занят, было бы странно, если бы затмение просто закрыло порт, он понятия не имеет, кто его использует. Так что убить что-то, что он не знает, что это такое, не так уж и умно. – petur

+0

Я бы предположил, что Eclipse знает что-то о приложении, которое отправляет эмулятору. Какой-то обратный вызов или возвращаемый идентификатор процесса или что-то еще. Ну, я думаю, что я просто привык к моему опыту разработки .Net с Visual Studio. Сравнивая его с развитием Android, это похоже на вырубку деревьев топором по сравнению с использованием промышленной пилы. Lightyears, к сожалению ... :( – Nestor

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