Android构建:JarJar无法找到或加载主类

时间:2016-09-06 21:20:11

标签: java android

我正在尝试从源代码构建AOSP(进行一些修改)但我的构建停止了

[  0% 1/35196] JarJar: out/target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates/classes-jarjar.jar
FAILED: /bin/bash -c "java -jar out/host/linux-x86/framework/jarjar.jar process external/conscrypt/jarjar-rules.txt out/target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates/classes-full-debug.jar out/target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates/classes-jarjar.jar"
Error: Could not find or load main class com.tonicsystems.jarjar.Main
ninja: build stopped: subcommand failed.
make: *** [build/core/ninja.mk:149: ninja_wrapper] Error 1

我无法修复它。我的来源是托管here,外部/ jarjar的路径是googlesource上的库存。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,直到我意识到它是由于com.tonicsystems.jarjar.Main所在的错误路径造成的。在~/android/system,JarJar的com.tonicsystems.jarjar类位于:

external/jarjar/src/main/com/tonicsystems

什么时候应该

external/jarjar/src/main/java/com/tonicsystems

喜欢它的来源(来自GitHub)

src/main/java/com/tonicsystems/jarjar

P.S:我必须创建 external/jarjar/src/main/java目录,然后移动源代码。

答案 1 :(得分:0)

我之前使用AOSP fork(我认为Qualcomm的树)遇到了这个问题 - 这是由Makefile片段引起的,这些片段生成jar文件的文件列表没有正确处理本地化版本"排序"实用程序(除了应该删除的重复项之外,还会删除重要的类文件。)

我不记得所有细节或正确的修复方法,但最初让我解决的问题只是在构建时禁用本地化。

rm -rf out
export LANG=C
export LC_ALL=C
export LC_COLLATE=C
. build/envsetup.sh
lunch whatever
make droidcore -j8