Java Android Emulator在重新启动应用程序时总是引发异常

Java Android Emulator在重新启动应用程序时总是引发异常,java,android,android-emulator,nullreferenceexception,Java,Android,Android Emulator,Nullreferenceexception,我创建了一个简单的Android应用程序,它可以在Android Emulator上正常运行。 但是,当我修改某些内容(例如添加一个变量)并按Run时,它会将apk文件发送到emulator,并显示“不幸的是,我的应用程序已停止工作”,然后重新启动,它会正常工作。 我检查了日志,它与我的应用程序无关,它抱怨APK加载程序中出现了一些NullException。我重新启动了emulator和Eclipse,我使用最新的SDK来构建我的应用程序,我的最小API级别是8,目标是16。 我不使用本机代


我创建了一个简单的Android应用程序,它可以在Android Emulator上正常运行。
但是,当我修改某些内容(例如添加一个变量)并按Run时,它会将apk文件发送到emulator,并显示“不幸的是,我的应用程序已停止工作”,然后重新启动,它会正常工作。
我检查了日志,它与我的应用程序无关,它抱怨APK加载程序中出现了一些NullException。我重新启动了emulator和Eclipse,我使用最新的SDK来构建我的应用程序,我的最小API级别是8,目标是16。
我不使用本机代码。
我将错误日志粘贴到此处:

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 02-14 12:55:43.541:E/AndroidRuntime(723):致命异常:主 02-14 12:55:43.541:E/AndroidRuntime(723):java.lang.RuntimeException:无法实例化应用程序android.app.application:java.lang.NullPointerException 02-14 12:55:43.541:E/AndroidRuntime(723):在android.app.LoadedApk.makeApplication(LoadedApk.java:501)上 02-14 12:55:43.541:E/AndroidRuntime(723):在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4124)上 02-14 12:55:43.541:E/AndroidRuntime(723):在android.app.ActivityThread.access$1300(ActivityThread.java:130) 02-14 12:55:43.541:E/AndroidRuntime(723):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255) 02-14 12:55:43.541:E/AndroidRuntime(723):在android.os.Handler.dispatchMessage(Handler.java:99)上 02-14 12:55:43.541:E/AndroidRuntime(723):在android.os.Looper.loop(Looper.java:137)上 02-14 12:55:43.541:E/AndroidRuntime(723):在android.app.ActivityThread.main(ActivityThread.java:4745)上 02-14 12:55:43.541:E/AndroidRuntime(723):位于java.lang.reflect.Method.Invokenactive(本机方法) 02-14 12:55:43.541:E/AndroidRuntime(723):位于java.lang.reflect.Method.invoke(Method.java:511) 02-14 12:55:43.541:E/AndroidRuntime(723):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 02-14 12:55:43.541:E/AndroidRuntime(723):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 02-14 12:55:43.541:E/AndroidRuntime(723):在dalvik.system.NativeStart.main(本机方法) 02-14 12:55:43.541:E/AndroidRuntime(723):由以下原因引起:java.lang.NullPointerException 02-14 12:55:43.541:E/AndroidRuntime(723):在android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:377) 02-14 12:55:43.541:E/AndroidRuntime(723):在android.app.LoadedApk.getClassLoader(LoadedApk.java:320) 02-14 12:55:43.541:E/AndroidRuntime(723):在android.app.LoadedApk.makeApplication(LoadedApk.java:493) 02-14 12:55:43.541:E/AndroidRuntime(723):。。。还有11个
在再次启动应用程序之前,需要先关闭它。我不知道还有什么别的办法。不能同时运行两个相同的进程。我猜这一次效果不错,但第二次就不行了


您可以运行另一个emulator实例,但不建议这样做。

但是如果Eclipse发送另一个应用程序实例,为什么Eclipse不发送KILL信号呢?我怎样才能杀死它呢?你可以简单地从Android内部杀死应用程序(通常在设置下),或者只需按“上一步”或“主页”按钮退出应用程序。确保在同一时间内没有任何活动。我想你可以把它和一个正在运行并占用internet上某些端口的程序比较,如果这个端口被占用,如果eclipse刚刚关闭了这个端口,那就很奇怪了,他不知道是谁在使用它。因此,杀死一些东西,让它不知道它是什么,并不是那么聪明。我假设Eclipse知道一些关于发送到仿真器的应用程序的信息。某种回调或返回的进程id或任何东西。嗯,我想我已经习惯了用VisualStudio开发.Net的经验。将其与Android开发进行比较就像用斧头砍树,而不是用工业锯。不幸的是,光年…:(是的,从一个IDE到另一个IDE有时非常令人沮丧,我的答案对你有帮助吗?你的答案只是指出我的问题是有效的,尽管我标记了它。我的观点仍然是一样的,IDE缺少许多基本功能。你是否通过在AndroidManifest.xml中使用sharedUserId属性与其他包共享用户id?我没有看到任何错误。)aredUserId属性。我的应用程序由5个活动组成,当我使用“返回”到主活动时,它不会崩溃。但是,当我在内部活动中使用Run时,会出现异常。