ITKeyword,专注技术干货聚合推荐

注册 | 登录

android4.4系统源码编译(四)_问题总结

duantihi 分享于 2015-12-11

推荐:Ubuntu上编译android源码(一)

 源代码的下载方法,请参考文章Ubuntu上下载Android源码 由于网络不给力,总是下载到一半就挂掉,再加上最近工作比较忙,所以源码一直没有下载完成。周末的时候

2018阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=zo93kaue

     经过三个阶段的环境搭建、源码下载、编译,中间遇到不少问题, 现整理一下,供遇到类似问题的朋友参考:


1.找不到  linux/netfilter/xt_CONNMARK.h 文件
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/libxt_CONNMARK.c:26:41: fatal error: linux/netfilter/xt_CONNMARK.h: No such file or directory compilation terminated. make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/libxt_CONNMARK.o] 错误 1 make: *** 正在等待未完成的任务.... make: *** wait: 没有子进程。 停止。
原因分析:我在windows从百度网盘下载,拷贝到mac解压【由于Ubuntu解压报错】,再把mac目录挂载到ubuntu,再拷贝到ubuntu的其他目录; 由于mac系统文件名不区分大小写,android源码中有的目录下存在同名的文件,只有大小写不同,mac下解压出来就只剩一个小写的那个文件了,所以大写的文件就找不到了 解决方法:在ubuntu上下载网盘的文件,在ubuntu里解压; 参考链接: http://m.blog.csdn.net/blog/yangguangmeng/19161159 http://m.blog.csdn.net/blog/g_r_u_b_2010/8644745
2.build internal error 原因:内存不足导致, 原先 make -j8,改为 make -j4后可以了, 实在不行,可以试试 make 我的是2G内存。
3.build结束后,out/…/system/ 目录下 没有生成system.img文件,其他都生成了 原因:不知 解决:单独生成 system.img,在mydroid目录下执行命令:  make systemimage
单独编出 system.img后,原来 /generic/userdata.img、ramdisk.img 不在了, 又单独生成这俩个个文件 PS:后来在网上找到方法,Android4.4的system.img路径默认不在 generic/下,而在 out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img , 所以可以不单独编译的,只要把system.img拷贝到/generic目录下即可 参考网址: http://blog.csdn.net/innost/article/details/14164395

推荐:android源码的编译问题总结

由于目前的项目需要修改android的内核源码,所以我需要从android源码的编译开始学习. 下面看一下我的编译环境. 我使用的Ubuntu系统的版本是14.04,64位. gcc

4.执行 emulator 命令, 提示:emulator:未找到命令
解决:先执行如下两条命令命令: .   build/envsetup.sh lunch 1
再执行 emulator
最终运行成功:

5.修改后的apk无法push到模拟器: /system       read-only file system 解决:先 adb remount 【模拟器启动的情况下】 参考链接: http://www.linuxidc.com/Linux/2014-03/98078.htm 举例:修改了短信app的名称:

6.导入android 工程,报错,找不到某些依赖的类 步骤: (1)在adb-bundle 的eclipse中导入 android project工程,如Launcher2【网上说要新建java工程,那个适用于导入全部源码,导入单独一个工程按导入普通android工程即可】,路径:packages/app/Launcher2 (2) Launcher.java 类报错     找不到 : com.android.common.Search 类 解决方法:需要导入 该类所在的包: out/target/common/obj/JAVA_LIBRARIES/android-common-intermediates/classes.jar
参考: 前提:完整正确的编译了android源码,或者把别人编译好的完整的拷贝过来 依赖包的位置: http://www.cnblogs.com/playing/archive/2011/04/15/2016866.html 引入依赖包步骤: http://blog.csdn.net/woshinia/article/details/21231867
测试Calculator,我最终导入的jar包:最终不报错了

7. 调试单个app 参考链接:  http://blog.csdn.net/annkie/article/details/7995728 动态联调遇到的问题: 按照上面的文章调试,debug时提示错误: Failed to connect to remote VM. Connection refused. 拒绝连接 解决方法: 采用普通的调试方法,启动模拟器后,在eclipse的Device下能看到连接上的 模拟器, 点击对应的进程调试即可

8.ubuntu重启后 emulator无法启动 :    调试、单独编译Calculator后,重启ubuntu,发现 system.img、userdata.img、disk.img 文件都没了 原因:网上下的remakesystem 脚本执行后把这些文件删掉了;
解决方法:重新 make 它自动仅编译缺少的部分,不会整个系统重新编译哦,10分钟就好了 img文件又回来咯:





推荐:ubuntu编译android 源码

在用高版本的Ubuntu来编译Android源码的时候碰到的最多的就是要安装旧版本的gcc,g++和JDK。而这些在新版本的新立得里面是没有提供安装的。这里只要修改简单的配

     经过三个阶段的环境搭建、源码下载、编译,中间遇到不少问题, 现整理一下,供遇到类似问题的朋友参考: 1.找不到  linux/netfilter/xt_CONNMARK.h 文件 out/target/product/generic/obj/S

相关阅读排行


用户评论

游客

相关内容推荐

阿里云RDS

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。