【问题标题】:Android Studio: Link of external JAR in a multi modules projectAndroid Studio:多模块项目中外部 JAR 的链接
【发布时间】:2017-05-16 17:59:36
【问题描述】:

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

这工作正常。

我现在需要模块 A 来调用外部库。我已经下载了 JAR 文件并将其放在 moduleA/libs 文件夹中。 这个 libs 文件夹在 moduleA 的 gradle 依赖中被引用,所以编译是可以的。但是,运行时有一个异常:

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

我看到APK中不包含JAR文件,所以出现这个异常是正常的。

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

非常感谢 奥利维尔

【问题讨论】:

标签: android android-studio gradle jar


【解决方案1】:

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

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

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

我重建了所有,它工作。 JAR 文件现在存在于 APK 中,并且在运行时不再出现崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多