主机是fedora 14 linux内核2.6.35.6 swapon交换分区1.5G make -version 3.81(官方指定的make版本)jdk 1.6

磁盘预留空间大概需要大于13G

具体的编译步骤可参考

Fedora 15编译Android源代码

Android4.0.1 源码下载,模拟器编译和运行

问题1:

out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/classes)Unrecognized option : 9999999make: ***[out/host/common/obj/JAVA_LIBRARIES/clearsilver_intermediates/javalib.jar]Error 41解决:安装jdk,并正确设置环境变量,具体参考上面列出的第一篇文章问题二:缺少libgl1的包解决:在fedora下使用 yum install mesa-libGL-devel即可问题三:
Processing target/product/generic/dex_bootjars/system/framework/core.jar+ ns# Z5 J5 e8 j/ M. L) w. c( f

host/linux-x86/bin/dexopt: error while loading shared libraries: libdvm.so: cannot enable executable stack as shared object requires: Permission denied


解决:是使用的系统 fedora的问题,在fedora中suselinux默认设置了一些权限

在这里可以通过执行 setsebool allow_execstack=1


问题四:

/usr/bin/ld: note: 'XInitThreads' is defined in DSO /usr/lib/libX11.so.
6 so try adding it to the linker command line
/usr/lib/libX11.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status


解决:

在文件development/tools/emulator/opengl/host/renderer/Android.mk中加入
LOCAL_LDLIBS += -lX11


问题五:out of memory 或者是 collect2: ld terminated with signal 9 [Killed]


解决:android在后面的编译阶段内存占用量很高,如果没有设置swap交换分区,或者分区太小都会导致上述错误 ,

# dd if=/dev/zero of=/opt/other/swapfile bs=1024 count=1536K
# mkswap /opt/other/swapfile
# swapon /opt/other/swapfile
# swapon -s
Filename Type Size Used Priority
/opt/other/swapfile file 1572860 0 -1


问题六:acp: file 'out/host/linux-x86/obj/EXECUTABLES/vm-tests_intermediates/tests/data' does not exist

解决:在相应位置建立data目录即可(我在第一次编译的时候遇到了这个问题,按照此方法解决后又出现其他问题,删除out目录后重新编译,没有出现此问题及后续问题)


问题七:llvm-rs-cc:permission denied

解决:你可以到相应文件夹下 out/host/linux-x86/bin/llvm-rs-cc,查看此文件,即使你将所有权限有效,在运行会出现cannot execute binary file llvm-rs-c c,我没有找到解决办法,只是把out目录删除,重新编译就没有出现此问题。也没有出现上面的问题六。


倒腾了两天,终于是编出来了。貌似android的编译不是每次编译都是一样的,所有有人一次成功,还有人要纠结很久。贴图一张,祝大家成功阿!


问题八:修改android代码的过程中再进行编译出现You have tried to change the API from what has been previously approved.(修改了frameworks/base)

解决:make update-api


问题九:当想测试一个内置的应用程序时,使用mmm编译packages/experimental/xxx文件夹,会在generic/system/app下生成apk文件以及同名的xxx.odx文件,但是这个apk文件是不可以直接安装的,安装时出错。logcat会显示does not include classes.dex。

解决:‘发现Android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? Android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用。’其实含有dex的文件在generic/obj/APPS下面的xxx_intermediates文件夹下,下面的xx.apk.unaligned和xxx.apk.unsingned是包含dex是可以安装的。


更多相关文章

  1. Android(安卓)使用OKHttp3请求接口401,返回Authorization Require
  2. Unable to start activity异常的解决方案
  3. 一个用于导出android项目配置宏为单个独立xml文件的shell脚本
  4. android点击输入法会把底部顶上去的解决办法
  5. debug安装包无效的解决办法
  6. 【转】Android(安卓)jar resource 资源文件的获取
  7. 如何下载并编译Android(安卓)4.0内核源码Goldfish
  8. Android的/system/lib里加入自己的so库
  9. 【PaddlePaddle】测试Paddle-Lite mobile_light C++示例程序

随机推荐

  1. bridge和原生交互的简单用法
  2. 安卓(android)使用GPS,获取经纬度
  3. Titanium 使用刘明星的Jpush module做and
  4. Android RabbitMQ使用之RabbitMQ安装及配
  5. Android中的常用的对话框
  6. 《阿里巴巴Android开发手册》v1.0.1更新,
  7. Android(安卓)monkey 命令详解
  8. Android修改字体样式
  9. android 数字证书具体应用机制
  10. android插件汇总