2017-01-02 84 views
2

我有一個Android應用程序(在Android Studio上運行)。它由2個模塊組成: - 有一個低級純java模塊(我們稱之爲模塊A)。 - 最重要的是,模塊B是Android應用程序。它依靠moduleA進行一些處理。Android Studio:多模塊項目中外部JAR的鏈接

這工作正常。

我現在需要模塊A調用外部庫。我已經下載了JAR文件並將其放在moduleA/libs文件夾中。 這個libs文件夾在moduleA的gradle依賴中被引用,所以編譯是OK的。然而,在運行時異常:

致命異常產生的原因:拋出java.lang.ClassNotFoundException:未找到路徑類「XXXX」:DexPathList

我已經看到APK不含JAR文件,因此發生此異常是正常的。

如果我在moduleB/libs中複製相同的JAR文件,那麼它工作正常,但我在項目中有兩次JAR文件!什麼是乾淨的解決方案來處理這個問題? 我想它可以用gradle來解決,但我不知道如何。

非常感謝您 奧利維爾

+1

將jar庫轉換爲aar是解決方法:https://discuss.gradle.org/t/including-a-java-project-into-an-android-library-project-does-not-include-transitive-file -dependencies /8分之2442 –

回答

0

我已經能夠解決這個問題。這唸叨搖籃幫了我很多: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Creating-a-Library-Project

這裏是我做了什麼: 而不是把JAR文件中moduleA/libs文件夾中,我已經通過點擊項目,然後導入Android Studio中的JAR文件點擊右鍵 - >新建 - >模塊。然後我點擊了「Import .JAR/.AAR包」。 這創建了一個包含JAR文件+ gradle腳本的模塊。

然後,在moduleA的gradle這個劇本,我已經在依賴也會添加此: 編譯項目(路徑:「:name_of_the_jar_file」)

我重建所有和它的作品。 JAR文件現在存在於APK中,運行時不會再出現崩潰。

相關問題