【发布时间】:2013-12-23 17:44:29
【问题描述】:
我正在构建一个依赖于自定义库的 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 文件用于我的库,否则我无法让它工作。
【问题讨论】:
-
你不应该有 + 的版本吗?编译'com.android.support:appcompat-v7:19+'
-
您是要在 APK 中包含 jar 文件本身还是仅包含 jar 中的类?
-
我只是想包含 jar 中的类。
-
虽然如果结果是包含 jar 并将其添加到应用程序的类路径中,我也会很高兴。当我尝试使用库中的一个类时,任何可以绕过 ClassNotFoundException 的方法。
-
@Greg 你能编译你的项目,把依赖设置为
compile files('libs/MyLibrary.jar')吗?
标签: java android gradle android-studio