編譯Android 7.0遇到的問題

硬件平臺:rk3128

Android版本:7.0

kernel版本:3.10.104

ubuntu版本:ubuntu 16.04


一、

問題描述:編譯kernel時錯誤:/bin/sh: 1: lzop: not found

解決方法:這個碰到過好多次了,安裝即可:sudo apt-get install lzop


二、

問題描述:編譯android報錯

Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by [email protected])).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.

解決方法:這個網上已經有很多了,解決辦法是打開prebuilts/sdk/tools/jack-admin

JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
修改爲

JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4g -cp $LAUNCHER_JAR $LAUNCHER_NAME"

但是編譯始終還是有問題,報如下錯誤:

FAILED: /bin/bash -c "(mkdir -p out/target/common/obj/JAVA_LIBRARIES/sdk_v22_intermediates/classes.jack.tmpjill.res ) && (unzip -qo prebuilts/sdk/22/android.jar -d out/target/common/obj/JAVA_LIBRARIES/sdk_v22_intermediates/classes.jack.tmpjill.res ) && (find out/target/common/obj/JAVA_LIBRARIES/sdk_v22_intermediates/classes.jack.tmpjill.res -iname \"*.class\" -delete ) && (JACK_VERSION=3.36.CANDIDATE out/host/linux-x86/bin/jack @build/core/jack-default.args --verbose error  -D jack.import.resource.policy=keep-first -D jack.import.type.policy=keep-first -D jack.android.min-api-level=1 --import prebuilts/sdk/22/android.jar --import-resource out/target/common/obj/JAVA_LIBRARIES/sdk_v22_intermediates/classes.jack.tmpjill.res --output-jack out/target/common/obj/JAVA_LIBRARIES/sdk_v22_intermediates/classes.jack ) && (rm -rf out/target/common/obj/JAVA_LIBRARIES/sdk_v22_intermediates/classes.jack.tmpjill.res )"
java.lang.AssertionError
    at com.android.sched.scheduler.MultiWorkersScheduleInstance.process(MultiWorkersScheduleInstance.java:523)
    at com.android.jack.Jack.run(Jack.java:738)
    at com.android.jack.Jack.checkAndRun(Jack.java:412)
    at com.android.jack.CommandLine.runJack(CommandLine.java:79)
    at com.android.jack.api.v01.impl.Cli01CompilationTaskImpl.run(Cli01CompilationTaskImpl.java:85)
    at com.android.jack.server.tasks.JackTask.handle(JackTask.java:168)
    at com.android.jack.server.tasks.SynchronousServiceTask.handle(SynchronousServiceTask.java:49)
    at com.android.jack.server.tasks.JackTask.handle(JackTask.java:55)
    at com.android.jack.server.router.PathRouter.handle(PathRouter.java:65)
    at com.android.jack.server.router.ContentTypeParameterRouter.handle(ContentTypeParameterRouter.java:84)
    at com.android.jack.server.router.ContentTypeRouter.handle(ContentTypeRouter.java:82)
    at com.android.jack.server.router.ContentTypeRouter.handle(ContentTypeRouter.java:82)
    at com.android.jack.server.router.ContentTypeRouter.handle(ContentTypeRouter.java:82)
    at com.android.jack.server.router.ContentTypeParameterRouter.handle(ContentTypeParameterRouter.java:84)
    at com.android.jack.server.router.ContentTypeRouter.handle(ContentTypeRouter.java:82)
    at com.android.jack.server.router.ContentTypeRouter.handle(ContentTypeRouter.java:82)
    at com.android.jack.server.router.MethodRouter.handle(MethodRouter.java:67)
    at com.android.jack.server.router.RootContainer.handle(RootContainer.java:49)
    at org.simpleframework.http.core.RequestDispatcher.dispatch(RequestDispatcher.java:121)
    at org.simpleframework.http.core.RequestDispatcher.run(RequestDispatcher.java:103)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)

Internal compiler error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by [email protected])).
Warning: This may have produced partial or corrupted output.
[ 31% 11462/35877] build out/target/common/obj/JAVA_LIBRARIES/sdk_v18_intermediates/classes.jack
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
查了好久也沒有結果,因爲我的電腦內存只有4G,我就想會不會是4G太大了,然後改成-Xmx2g,還是會報OOM錯誤,最後改成-Xmx3g,編譯通過,看來是電腦配置太低的原因。


對了修改完後要先停止服務:./prebuilts/sdk/tools/jack-admin stop-server


三、我把android 7.0源碼下的.repo刪除後,編譯也會報錯,難道必須有.repo或.git目錄纔可以嗎?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章