1

我的 build.gradle 中有以下依赖项:

dependencies {
    compile 'com.google.guava:guava:18.0'
}

它在编译期间工作,并为我的源代码生成输出 jar(它使用来自 guava 库的 com.google.common.collect.Maps 等类)。

我有一个将输出 jar 转换为 dex 文件的 dex 任务:

task dex(dependsOn: jar, type:Exec) {
    project.dexDir.mkdirs()
    commandLine 'dx', '--dex', '--no-strict', '--output=' + buildDir +'/dex/' + project.name + '.jar', jar.archivePath
}

问题是输出 jar 没有 guava 依赖项,所以当它转换为 dex,推送到 android 设备并在那里运行时,我得到 java.lang.ClassNotFoundException: 找不到类 com.google.common .collect.Maps

有没有办法让从我的其他源代码生成输出 jar 的 javaCompile 任务的输出 jar 中包含番石榴依赖项?非常感谢您!

4

1 回答 1

1

这通常称为“具有依赖关系的 jar”,有时也称为“胖”jar。这个解决方案可能是您需要的:

于 2015-05-11T01:32:08.693 回答