2012-10-02 37 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運行? –