2012-10-02 38 views
5
重新初始化

请别人解释我这个错误是什么手段,以及如何避免它。的NoClassDefFoundError - 拒绝先前失败的类

,而我的应用程序强制关闭,因为该错误后:

09-28 12:53:45.746 I/dalvikvm(29489): Rejecting re-init on previously-failed class Lcom/bartat/android/ui/task/AsyncTaskExt; v=0x0 
09-28 12:53:45.748 D/AndroidRuntime(29489): Shutting down VM 
09-28 12:53:45.755 I/am_crash(1146): [29489,com.bartat.android.secret,572996,java.lang.NoClassDefFoundError,com.bartat.android.ui.task.AsyncTaskExt,CommandsActivity.java,726] 
09-28 12:53:45.755 I/am_finish_activity(1146): [1079225264,123,com.bartat.android.secret/.CommandsActivity,crashed] 
09-28 12:53:45.750 W/dalvikvm(29489): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
09-28 12:53:45.752 E/AndroidRuntime(29489): FATAL EXCEPTION: main 
09-28 12:53:45.752 E/AndroidRuntime(29489): java.lang.NoClassDefFoundError: com.bartat.android.ui.task.AsyncTaskExt 

这个问题无法通过重新安装应用程序来解决。

如果我将AsyncTaskExt重命名为AsyncTaskExt2例如,那么它再次工作很长时间。但几个星期/几个月后,它又开始出现这个错误。

这是什么意思?为什么抛出它,以及如何避免重命名类?

请帮助我, 陶

回答

0

你确定这是在运行应用程序后,你所得到的第一个例外? 以前可能有一些未捕获的异常。

+0

我不知道是什么造成这个错误,我的意思是没有任何错误,它发生或不前。但是,当发生这种异常时,日志中没有其他错误。我猜系统(vm?)存储在某个地方,这个班有问题。但我还没有抓住第一次发生。 – bartat

3

您必须在AndroidManifest.xml中

9

这发生在一个类不能被加载各种原因增加的用途库。不幸的是,新的ART运行时没有记录足够的信息,原因在于此。如果你能得到一个较旧的Android设备保持与Dalvik的你会看到不同的日志记录,通常更精确地揭示了进攻。

我最后一次看到它活着,我不得不应付一个JAR文件,该文件实际上并未包括或列出其依赖关系,因此添加正确的依赖库的文件的gradle解决它。最大的问题是要弄清楚哪些类失踪 - 这是Dalvik的日志/编译/文档也许能告诉你。

为什么类不能在整个Java语言中加载类还有很多其他的原因,所以这个特定的原因可能并不普遍适用。

+0

这帮了我很多。添加一个依赖JAR解决了这个问题。 – Rediska

+0

添加缺少的JAR依赖项也为我解决了这个问题。谢谢! – pdsouza

2

我开始建设并启用新的文物分析另外一个项目后有这个问题。 Gradle守护进程然后缓存New Relic代理,并且无法启动其他应用程序。

什么帮助是

./gradlew --stop 
6

偏偏对我来说只有即时运行启用。

+0

感谢节省了大量的时间,欢呼:) –

+0

非常感谢。它的工作时,我禁用insta运行。仍然有一些问题与insta运行? –