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



    http://blog.csdn.net/duantihi/article/details/50263427


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


    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里解压;
    参考链接:

    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目录下即可

    4.执行 emulator 命令, 提示:emulator:未找到命令

    解决:先执行如下两条命令命令:
    .   build/envsetup.sh
    lunch 1

    再执行 emulator

    最终运行成功:


    5.修改后的apk无法push到模拟器: /system       read-only file system
    解决:先 adb remount 【模拟器启动的情况下】
    举例:修改了短信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源码,或者把别人编译好的完整的拷贝过来

    测试Calculator,我最终导入的jar包:最终不报错了


    7.调试单个app
    动态联调遇到的问题:
    按照上面的文章调试,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文件又回来咯:




  • 相关阅读:
    case when完成不同条件的显示
    联行号不正确的触发器
    |待研究|委托付款的支付状态触发器
    待解决:新增客商校验触发器|两个错误|
    C#.NET和C++结构体Socket通信与数据转换
    C#中struct和class的区别详解
    C#与C++数据类型比较及结构体转换[整理]
    surging+CentOS7+docker+rancher2.0 入门部署教程
    Google Maps API Key申请办法(最新)
    开源的api文档管理系统
  • 原文地址:https://www.cnblogs.com/ztguang/p/12646440.html
Copyright © 2020-2023  润新知