[英]Android building: JarJar can't find or load main class
我正在嘗試從源代碼構建 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
我無法修復它。 我的源代碼托管在這里,external/jarjar 的路徑是 googlesource 上的庫存路徑。
任何人都可以幫忙嗎?
我遇到了同樣的問題,直到我意識到它是由於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
PS:我必須創建 external/jarjar/src/main/java
目錄,然后移動源代碼。
我之前用AOSP fork(我認為Qualcomm的樹)遇到了這個問題 - 這是由Makefile片段引起的,這些片段生成jar文件的文件列表,無法正確處理“sort”實用程序的本地化版本(導致刪除重要的類文件以及應該刪除的重復項。
我不記得所有的細節或正確的解決方案,但最初讓我解決的解決方法只是在構建時禁用本地化。
rm -rf out
export LANG=C
export LC_ALL=C
export LC_COLLATE=C
. build/envsetup.sh
lunch whatever
make droidcore -j8
為我解決這個問題的是與jarjar
本身完全無關的事情。
我正在 Ubuntu 20.04 上構建 AOSP 7.1.1。 Ubuntu 20.04 上的默認python
命令指向python3
[1] ,但 AOSP 7.1.1 使用python
(實際上是 python 2.7.5)構建。
我用sudo apt install python
更新了我的系統,它將python
命令正確鏈接到python2
而不是python3
。 在此之后,我成功構建。
AOSP 在prebuilts/python
目錄下隨python
一起提供,我仍然很困惑為什么構建系統沒有指向那個python
版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.