![](/img/trans.png)
[英]NoClassDefFoundError at Runtime on class inside external .AAR library
[英]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'com.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.