编译Android 7.0遇到的问题

来源:互联网 发布:马歇尔 知乎 编辑:程序博客网 时间:2024/05/20 01:11

硬件平台: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 android-jack-team@google.com)).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 android-jack-team@google.com)).Warning: This may have produced partial or corrupted output.[ 31% 11462/35877] build out/target/common/obj/JAVA_LIBRARIES/sdk_v18_intermediates/classes.jackninja: build stopped: subcommand failed.build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failedmake: *** [ninja_wrapper] Error 1
查了好久也没有结果,因为我的电脑内存只有4G,我就想会不会是4G太大了,然后改成-Xmx2g,还是会报OOM错误,最后改成-Xmx3g,编译通过,看来是电脑配置太低的原因。


对了修改完后要先停止服务:./prebuilts/sdk/tools/jack-adminstop-server


三、我把android 7.0源码下的.repo删除后,编译也会报错,难道必须有.repo或.git目录才可以吗?

原创粉丝点击