Android Studio:多模块项目中外部 JAR 的链接

Oli*_*ble 6 android jar gradle android-studio

我有一个 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 解决,但我不知道如何解决。

非常感谢奥利维尔

Oli*_*ble 5

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

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

然后,在 moduleA 的 gradle 脚本中,我在依赖项中添加了这个: compile project(path: ':name_of_the_jar_file')

我重建了一切,它的工作原理。JAR 文件现在存在于 APK 中,并且在运行时不再发生崩溃。