Android系统编译出错

在Android7.1编译过程中出现如下错误:

Starting
 build with ninjaninja: Entering directory `.‘ [  0% 8/30301] Ensure 
Jack server is installed and startedJack server already installed in 
"/home/guochongxin/.jack-server"Launching Jack server java 
-XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp 
-Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp 
/home/guochongxin/.jack-server/launcher.jar 
com.android.jack.launcher.ServerLauncher[  0% 10/30301] Building with 
Jack: 
out/target/common/obj/JAVA_LIBRARIES/libprotobuf-java-micro_intermediates/classes.jack[
  0% 12/30301] Building with Jack: 
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dexFAILED:
 /bin/bash 
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rspOut
 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.[  0% 12/30301] Compiling SDK Stubs
 with Jack: 
out/target/comm...AVA_LIBRARIES/android_stubs_current_intermediates/classes.jackninja:
 build stopped: subcommand failed.make: *** [ninja_wrapper] Error 1

从上面的错误提示中可以看到如下一句:

Try increasing heap size with java option ‘-Xmx<size>‘.

按照上述发现的提示语句,我们对prebuilts/sdk/tools/jack-admin文件进行如下修改:1.找到如下语句:

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

2.将上述语句修改为:

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

主要是添加了-Xmx4096m参数,接下来在源码目录下执行如下命令重启jack-admin服务:

./prebuilts/sdk/tools/jack-admin stop-server

./prebuilts/sdk/tools/jack-admin start-server

重启完jack-admin服务后,此时再重新执行编译命令就能编译通过了。

时间: 2024-08-08 22:05:48

Android系统编译出错的相关文章

Android系统编译时遇到的几个.mk的疑惑。

在Android4.2的源码Build/prduct_config.mk里面遇到几个疑惑: # Convert a short name like "sooner" into the path to the product # file defining that product. # INTERNAL_PRODUCT := $(call resolve-short-product-name, $(TARGET_PRODUCT)) ifneq ($(current_product_ma

realarm Android系统编译后内核无法启动的解决方法

由于之前版本使用的内核并非uImage格式,而在编译时使用的是非uImage格式编译,所以照成无法启动. 解决方法是,在编译内核时使用make uImage方式编译. 修改根目录下的build_realv210.sh文件,如下图所示 另外注意上图中CPU_JOB_NUM这个参数,要根据自己的电脑配置来选择,该参数在该文件的起始处设置,可以设置成电脑CPU核心数的2倍,例如:如果核心数为2,那么设置成4即可. 完整脚本下载地址:http://download.csdn.net/detail/u01

Android系统编译与测试

1.Android系统分析 2.下载Android源代码(不包括Linux内核部分) 下载好了的Android_5.01.tar.gz,通过samba复制到ubuntu里,再解压之. 可以看到AndroidSrc/这个文件夹,它存放的就是Android源代码了. 3.编译 a.初始化编译环境,在build目录下面 b.选择编译目标(配置) 配置 这里有好几个小时的时间zzzzzzzzzzzzzzzzzzz c.编译目标输出 4.测试Android系统 a.创建一个模拟器来模拟设备 启动studi

Android系统编译环境搭建

之前在公司做Android系统开发时,服务器编译环境都是我来配置的,总结了一份文档,文档放着很久了,一来跟大家共享下,二来防止丢失. 1.JDK环境变量配置 将mtkoss.tar.gz上传到/目录,使用命令:#tar –xvzf mtkoss.tar.gz 修改/etc/profile文件,加入环境变量: JAVA_HOME=/mtkoss/jdk/1.6.0_45-ubuntu-10.04/x86_64 JRE_HOME=/mtkoss/jdk/1.6.0_45-ubuntu-10.04/x

Android系统编译错误Note: Some input files use or override a deprecated API. 解决办法

进入系统framework层修改了下MediaPlayer.java的源码,就添加了个方法,结果重新编译系统报下面错误: .................. Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. 6 warnings 再进入MediaPlayer.java把修改的复原,结果编译就通过,关键是我需要那个方法... 最

Android系统编译环境初始化时Product产品的import-nodes过程

从运行make -f config,mk文件開始,config,mk作为当前的makefile文件.将会被make解析,一般make解析Makefile文件流程首先是载入当中include的各种其它mk文件,同一时候在载入的过程中会初始化自己定义的变量,相似于预编译,在完毕各种初始化后,确定目标以及依赖关系,终于运行目标输出动作. 在config.mk中存在多个须要include的mk文件.这里关注product相关的envsteup.mk 在envsteup.mk从又会include prod

android系统编译记录

问题一: Copying: out/target/common/obj/JAVA_LIBRARIES/core_intermediates/emma_out/lib/classes-jarjar.jar Install: out/host/linux-x86/framework/dx.jar Install: out/host/linux-x86/bin/dx host C++: aapt <= frameworks/base/tools/aapt/AaptAssets.cpp <comman

android系统编译打开系统蓝牙

在项目配置文件ProjectConfig.mk中开启蓝牙以后,但是设置菜单中并没有出现蓝牙选项,最后发现是因为ProjectConfig.mk同级目录下没有蓝牙配置文件android.hardware.bluetooth.xml,该文件内容如下 <?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2009 The Android Open Source Project Licensed

Android内核开发:系统编译输出的镜像文件

本文是<Android内核开发>的第四篇文章,主要介绍一下源码编译输出的几个重要的镜像文件,这里把bootloader源码和Linux内核源码的编译输出也算在其中,因为毕竟Android系统缺少了这两个部分在设备上也是跑不起来的. 1. MLO, u-boot.img 任何操作系统的启动,都离不开"引导程序",比如桌面Windows系统的BIOS.桌面Linux系统常用的是Grub,而在嵌入式系统中,这个引导程序通常叫做"bootloader",它通常由