簡體   English   中英

Android 構建:JarJar 無法找到或加載主類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM