Android App在安装时崩溃

每次重新安装我的日蚀时,我都会得到以下exception。 每次重新安装当前位于前台的应用程序时都会发生这种情况。

我希望这个错误只发生在开发期间,因为我通过Eclipse导致正在运行的应用程序的卸载。

有没有人在用户手机上看到此错误?

当我转向使用ICS的Galaxy Nexus时,这开始发生在我身上。

02-22 11:31:07.098: E/AndroidRuntime(479): FATAL EXCEPTION: main 02-22 11:31:07.098: E/AndroidRuntime(479): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.makeApplication(LoadedApk.java:466) 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3260) 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.access$2200(ActivityThread.java:117) 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969) 02-22 11:31:07.098: E/AndroidRuntime(479): at android.os.Handler.dispatchMessage(Handler.java:99) 02-22 11:31:07.098: E/AndroidRuntime(479): at android.os.Looper.loop(Looper.java:123) 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.main(ActivityThread.java:3683) 02-22 11:31:07.098: E/AndroidRuntime(479): at java.lang.reflect.Method.invokeNative(Native Method) 02-22 11:31:07.098: E/AndroidRuntime(479): at java.lang.reflect.Method.invoke(Method.java:507) 02-22 11:31:07.098: E/AndroidRuntime(479): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 02-22 11:31:07.098: E/AndroidRuntime(479): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 02-22 11:31:07.098: E/AndroidRuntime(479): at dalvik.system.NativeStart.main(Native Method) 02-22 11:31:07.098: E/AndroidRuntime(479): Caused by: java.lang.NullPointerException 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:346) 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.getClassLoader(LoadedApk.java:291) 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.makeApplication(LoadedApk.java:458) 02-22 11:31:07.098: E/AndroidRuntime(479): ... 11 more 

在上面的日志中,我没有发现任何与我的应用程序相关的内容。 但它仍在崩溃。

谁能告诉我这是什么原因? 这是Galaxy Nexus冰淇淋三明治中的一个错误吗?

当XML中的某些内容出错时,我遇到了这个问题,也许你只需要重新生成你的R.java

我最近遇到了这个问题但是出现在IDEA中。 我不得不将项目中期切换到Eclipse – 哎哟! 我最终在这里没有得到很好的答案,在我完成项目之后,我又回到了IDEA并再次尝试。 最终的解决方案是将项目移出我的工作区,删除除源和资源之外的所有内容,然后从现有源创建一个新项目。 我浪费了几个小时试图解决这个问题,它可能只适用于Eclipse。 值得一试……

祝你好运

您在initializeJavaContextClassLoader方法的第346行上有一个空指针。

 02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:346) 

编辑

这是来自GrepCode / com.google.android / android / 2.3_r1 / android.app.LoadedApk的方法 (从line 326开始)

 private void initializeJavaContextClassLoader() { IPackageManager pm = ActivityThread.getPackageManager(); android.content.pm.PackageInfo pi; try { pi = pm.getPackageInfo(mPackageName, 0); } catch (RemoteException e) { throw new AssertionError(e); } /* * Two possible indications that this package could be * sharing its virtual machine with other packages: * * 1.) the sharedUserId attribute is set in the manifest, * indicating a request to share a VM with other * packages with the same sharedUserId. * * 2.) the application element of the manifest has an * attribute specifying a non-default process name, * indicating the desire to run in another packages VM. */ boolean sharedUserIdSet = (pi.sharedUserId != null); boolean processNameNotDefault = (pi.applicationInfo != null && !mPackageName.equals(pi.applicationInfo.processName)); boolean sharable = (sharedUserIdSet || processNameNotDefault); ClassLoader contextClassLoader = (sharable) ? new WarningContextClassLoader() : mClassLoader; Thread.currentThread().setContextClassLoader(contextClassLoader); } 

看起来您可能正在尝试与另一个包共享虚拟机。