第三LIB我有一個問題
「java.lang.NoClassDefFoundError:失敗分辨率:Lorg /阿帕奇/公/郎/ StringUtils的」;
當我試圖運行一個Android應用程序,在我自己的Android庫上聲明。
Fllowing是我的步驟:
創建一個android項目,然後在其中構建一個名爲「sptvlib」的新模塊。
這個模塊依賴於一個名爲「共同琅」第三方LIB這是一個字符串utils的lib.please看到「sptvlib」 gradle這個文件:爲什麼lib模塊不能包括在Android Studio中
dependencies {
...
compile 'org.apache.directory.studio:org.apache.commons.lang:2.6'
...
}
建造整個項目後,我得到了模塊sptvlib.aar文件,並將其複製到另一個android應用程序項目的「libs」目錄中。
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
...
compile(name: 'sptvlib', ext: 'aar')
...
}
我成功地建立了這個應用程序,但是當它運行時,logcat的表現 「java.lang.NoClassDefFoundError」 的錯誤。 我必須重新添加「commons.lang」聲明到應用程序項目gradle,然後它運行正常...我們已經添加了第三方庫到我的模塊使用「編譯」。爲什麼在我自己的模塊上失效的應用程序仍然無法在運行時找到它?
因此,我建立的「sptvlib.aar」不是一個像「rxjava」和「改造」等真正的庫...如果一些其他應用程序使用「sptvlib」的功能「commons.lang」庫並運行正常,我們需要在每個應用程序項目中創建一個新模塊,並在其中複製「sptvlib」代碼,或者我錯了?如果有一些其他應用程序使用依賴於「commons.lang」庫的「sptvlib」的功能應該完美地工作,那麼您可以通過一些示例來幫助我?如何創建一個「真實」庫?謝謝^ _^ –
。但是你不能直接在應用程序中使用「commons.lang」的功能。 – nnn
我的應用程序不直接使用第三個庫的功能,只調用依賴於第三個庫的sptvlib的一些方法... –