Android Studio:多模块项目

时间:2017-01-02 16:11:59

标签: android android-studio gradle jar

我有一个Android应用程序(在Android Studio上运行)。它由2个模块组成: - 有一个低级纯java模块(我们称之为模块A)。 - 最重要的是,模块B是Android应用程序。它依赖于moduleA进行一些处理。

这很好用。

我现在需要模块A来调用外部库。我已经下载了JAR文件并将其放在moduleA / libs文件夹中。 此libs文件夹在moduleA的gradle依赖项中引用,因此编译正常。但是,运行时会出现异常:

致命异常引起:java.lang.ClassNotFoundException:在路径上找不到类“XXXX”:DexPathList

我已经看到APK不包含JAR文件,因此发生此异常是正常的。

如果我在moduleB / libs中复制相同的JAR文件,那么它工作正常,但我在项目中有两次JAR文件!处理这个问题的清洁解决方案是什么? 我想它可以用gradle解决,但我不知道如何。

非常感谢你 奥利弗

1 个答案:

答案 0 :(得分:1)

我已经能够解决这个问题。关于Gradle的这篇文章对我帮助很大: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Creating-a-Library-Project

以下是我所做的: 我没有将JAR文件放在moduleA / libs文件夹中,而是通过单击项目在Android Studio中导入JAR文件,然后右键单击 - >新的 - >模块。然后我点击了“导入.JAR / .AAR包”。 这创建了一个包含JAR文件+ gradle脚本的模块。

然后,在moduleA的gradle脚本中,我在依赖项中添加了这个:   编译项目(路径:':name_of_the_jar_file')

我重建了所有并且它有效。 JAR文件现在存在于APK中,并且在运行时不会再发生崩溃。