2017-01-02 82 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中,运行时不会再出现崩溃。

相关问题