Gre*_*reg 8 java android gradle android-studio
我正在构建一个依赖于自定义库的Android应用程序,Gradle只在我使用项目依赖项时才愿意包含我的自定义库,而不是在我使用文件依赖项来包含库的jar文件时.我正在使用API levee 19 SDK构建我的应用程序和库.
失败的dependencies部分来自build.gradle:
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile files('libs/MyLibrary.jar')
}
Run Code Online (Sandbox Code Playgroud)
如果我使用上面的dependencies部分,MyLibrary.jar中的类都不包含在构建apk文件中,通过提取其classes.dex和运行dexdump进行验证.我还验证了所有类都存在于我正在使用的jar文件中.
如果我使用以下dependencies部分,那么MyLibrary中的所有类都包含在apk文件中:
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile project(':MyLibrary')
}
Run Code Online (Sandbox Code Playgroud)
我正在使用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
}
Run Code Online (Sandbox Code Playgroud)
这个答案展示了如何修复 jar 文件的创建。它很难看,但似乎有效。
| 归档时间: |
|
| 查看次数: |
4970 次 |
| 最近记录: |