簡體   English   中英

運行時的NoClassDefFoundError在Android Studio中的.AAR類中

[英]NoClassDefFoundError at Runtime on class inside .AAR in Android Studio

我已經研究了很多小時關於可能的解決方案,但無論我嘗試它只是失敗。 這是解釋的情況:

我在Android Studio上有這個庫項目,它生成app-debug.aar文件。 然后我在實現項目中添加這個新模塊,按照向導導入.JAR / .AARs我選擇.aar並在項目結構中更新:app的依賴項。

一旦清理了項目(甚至使用./gradlew clean --Mac OS X),我可以在任何活動中引用該類及其方法。

現在,在運行時,一旦在真實設備上構建和安裝,應用程序將崩潰拋出上述運行時異常。

注意:我正在導入.aar因為我需要保護代碼並且它有資源,所以.jar.aar的。 如果我導入庫模塊(使用source和all而不是.aar ),那么應用程序在運行時沒有問題。

我已經嘗試了所有的東西,如果有人能夠對這可能會有所了解,那么我將非常感激。

該類擴展了ViewGroup並在運行時實例化,以防任何事情。 代碼是給我的,所以除非絕對必要,否則可能無法進行重大改變。

先謝謝大家!

阿曼多

對於那些仍在尋找解決方案的人來說,遵循兩個選項可以解決與OP提到的完全相同的問題。

  • 在目標模塊中也包含(有問題的)庫依賴項,即在我的情況下,我將protobuf-lite包含為我的庫模塊的依賴項,但是當在app模塊.aar lib導入為.aar時, noclassdefFound出現noclassdefFound錯誤。 作為一種解決方法,我也將protobuf-lite依賴項添加到我的應用程序模塊中,它就像魅力一樣。

  • 第二個選項對我有用,而不是添加gradle依賴`compile'c​​om.google.protobuf:protobuf-lite:3.0.1',我從maven下載了protobuf-jar並手動添加到我的庫模塊的庫中,問題解決了。

不知道gradle插件有什么問題,但希望它可以幫助其他人尋找同樣的問題。

NoClassDefFound錯誤實際上發生在我在問題上提到的這個類使用的向后兼容庫(“A類”)。 除了A類之外沒有給出任何細節,后來又發現另一個類有類似的問題但是指向同一個例子的compat lib我注意到A類也在調用它的方法並實現它回調。 通過提高min version (使用本機API),我可以克服這個問題。 這確實是一個問題,似乎在.aar左右包含了.aar -comp庫。 我是否應該更好地理解這個問題,我會更新這個“答案”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM