gpt4 book ai didi

java - 为什么 Gradle 只包含我的库中具有项目依赖性的类

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:56:26 26 4
gpt4 key购买 nike

我正在构建一个依赖于自定义库的 Android 应用程序,而 Gradle 仅在我使用项目依赖项时才愿意包含我的自定义库,而不是在我使用文件依赖项来包含库的 jar 文件时。我正在使用 API levee 19 SDK 构建我的应用程序和库。

build.gradle 中的dependencies 部分失败:

dependencies {
compile 'com.android.support:appcompat-v7:+'
compile files('libs/MyLibrary.jar')
}

如果我使用上面的 dependencies 部分,MyLibrary.jar 中的任何类都不包含在构建 apk 文件中,通过提取其 classes.dex 并运行 dexdump 来验证。我还验证了所有类都存在于我正在使用的 jar 文件中。

如果我使用以下 dependencies 部分,则 MyLibrary 中的所有类都包含在 apk 文件中:

dependencies {
compile 'com.android.support:appcompat-v7:+'
compile project(':MyLibrary')
}

我使用的是 Android Studio 0.4.0、Gradle 1.9,我认为 Gradle 插件是 0.7.1。

这是怎么回事?我真的很想用 API 级别 18 SDK 构建我的应用程序以测试兼容性,但我无法让它工作,除非我能够只为我的库使用 jar 文件。

最佳答案

好吧,这是我的错。我的库的 build.gradle 配置为仅在 jar 输出文件中包含源文件。以下是不正确 Gradle 代码,会给您带来与我遇到的问题相同的问题。

task jar(type: Jar) {
from android.sourceSets.main.java
}

This answer展示了如何修复 jar 文件的创建。这很丑陋,但似乎有效。

关于java - 为什么 Gradle 只包含我的库中具有项目依赖性的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20748541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com