Android开发之编译源码的注意事项
白羽 2018-06-15 来源 :网络 阅读 1177 评论 0

摘要:本文将带你了解Android开发之编译源码,希望本文对大家学Android有所帮助。



JDK安装

好像编译Android6.0需要的是JDK7而不是JDK8,官网上的说明好像有误。 这样安装7:

sudo add-apt-repository ppa:openjdk-r/ppa  

sudo apt-get update   

sudo apt-get install openjdk-7-jdk

可以这样切换JDK版本

sudo update-alternatives --config java

sudo update-alternatives --config javac

依赖测试设备的问题


根据设备选型源码版本 //source.android.com/source/build-numbers.html#source-code-tags-and-builds


下载专属驱动


· https://developers.google.com/android/nexus/drivers

· https://developers.google.com/android/nexus/blobs-preview

1. 根据这个表来选择lunch列出的类型 //source.android.com/source/running.html#selecting-device-build

内存不足

internal compiler error: Killed (program cc1plus) recipe for target ...glsBuiltinPrecisionTests.o failed 这是因为内存不足。 其实人家说了编译需要15G内存,200G硬盘。但是穷啊,只有2G内存。 这样解决:

sudo dd if=/dev/zero of=/swapfile bs=64M count=16sudo mkswap /swapfilesudo swapon /swapfile

详见//vb2005xu.iteye.com/blog/2171295

Ubuntu16

clang: error: linker command failed with exit code 1 这是clang编译器报错,这个坑只有用最新版Ubuntu16的时候有。解决方法: 修改art/build/Android.common_build.mk:

  ifneq ($(WITHOUT_HOST_CLANG),true)

改为:

  ifeq ($(WITHOUT_HOST_CLANG),false)

设备连接不上

运行adb device如果没有列出设备,说明usb rules有问题。 在这里更新usb rules://source.android.com/source/initializing.html#configuring-usb-access 如果还是有问题例如no permissions,运行lsusb命令,查找设备对应的两个id,并且在/etc/udev/rules.d/51-android.rules(文件名字可能不同)里面增加规则:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c87",MODE="0666"

重新加载

$sudo chmod a+rx /etc/udev/rules.d/70-android.rules

$sudo service udev restart

重新连接设备.

刷机waiting device

运行adb reboot bootloader,如果不能进入fastboot模式,则说明设备连接有问题。

官网上说运行fastboot flashall -w来刷机,但实际上会出现<wating devices>错误。 解决方法是用sudo运行,并且增加-p 参数(其实就是构建的时候输入的代号)。如下:

sudo $(which fastboot) oem unlock

sudo $(which fastboot) flashall -w -p bullhead

其他错误

bad request, see jack server log

这个错误不要紧,再重新编译就行了。

Start jack server fail

这个错误也不要紧,重新编译就行了。

 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程