我有两个纯 Java 项目(:java:libs:proj1、:java:libs:proj2),它们在构建时会生成两个 classes.jar。“组合”的两个 jar 包括我想转换为 dex jar 的确切类,即其中包含 classes.dex 的 JAR 文件。
有人可以帮我将两个纯 java 项目转换为一个包含 classes.dex 的 JAR 吗?
这是我尝试做的。
1)创建一个单独的 Android 库项目(应用插件:'android-library')并将两个 java 项目作为依赖项包含在内。
apply plugin: 'android-library'
dependencies {
compile project(':java:libs:proj1')
compile project(':java:libs:proj2')
}
但是,使用这种方法,它不会生成 dex 文件。相反,它会生成一个“.aar”文件,其中仅包含两个项目的 .class 文件。如果我可以将此 .aar 文件转换为其 dex,那么这将是完美的,但显然“android-library”插件没有“dex”任务。
2)创建一个Android项目(应用插件:'android')并将这两个项目作为依赖项。(与上面类似,但使用 'android' 而不是 'android-library')。
apply plugin: 'android'
dependencies {
compile project(':java:libs:proj1')
compile project(':java:libs:proj2')
}
这种方法确实创建了我需要的 dex 文件,但是它还包括我的两个纯 java 项目的所有依赖项。例如,我的 java 项目依赖于 JUnit、BouncyCastle 和其他一些外部 JAva 项目。在 classes.dex 中,我看到它包含了一切。有没有办法告诉“dex”任务“传递”不包括依赖项?
我只希望将与我的两个 java 项目直接关联的类放入 dex 中。我希望有一个简单的方法:(
谢谢,J