美文网首页
编译7.0源码遇到的问题和解决方案

编译7.0源码遇到的问题和解决方案

作者: 王小宝wy | 来源:发表于2016-12-22 11:25 被阅读0次

    编译单独模块错误

    单独编译libcore模块时,会出现如下的错误:

    ninja: error: 'out/host/common/obj/JAVA_LIBRARIES/bouncycastle-hostdex_intermediates/classes.jack', needed by 'out/host/common/obj/JAVA_LIBRARIES/core-tests-hostdex_intermediates/classes.dex', missing and no known rule to make it
    

    解决方法是,在libcore模块下的Android.mk中加入下面这句:

    export LIBCORE_SKIP_TESTS = false:$LIBCORE_SKIP_TESTS
    

    这句话的意思是跳过test模块编译,之后就可以正常编译libcore模块

    不得不吐槽一下Android 7.0的编译系统,Android 7.0是用Ninja再加上Jack来进行编译,速度上感觉不太明显,但是占用资源较多,同样的机器编译Android 5.1时,使用make -j32,其他程序基本不会受影响,但是在Android 7.0下,如果使用make -j32之后,整个电脑卡的跟**一样...

    ADB 错误

    编译完成后,使用adb reboot bootloader时会报如下错误:

    error: insufficient permissions for device
    

    报错的同时,会在底下建议前往官网查看相应文档,查看文档可知解决办法是:
    编辑/etc/udev/rules.d/51-android.rules文件,在其中添加当前连接的设备,格式为:
    SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
    其中, ATTR{idVendor}的值应当是当前设备制造商相对应的值,这里我的设备是Nexus 6,所以相对应的值就是22b8, 最后执行:

    chmod a+r /etc/udev/rules.d/51-android.rules
    

    常见设备对应USB Vendor ID

    公司 USB Vendor ID
    Google 18d1
    HTC 0bb4
    Huawei 12d1
    Lenovo 17ef
    LG 1004
    Motorola 22b8
    Samsung 04e8
    Sony 054c
    ZTE 19d2

    上面是一些常用厂商设备的USB Vendor ID, 完整的列表可以查看官网

    根据官网指导,设置好rules之后应该就可以了,如果还是不可以,那么很简单,拔了重新插一下usb....

    Build

    1. device/moto/shamu/aosp_shamu.mk中可以定义PRODUCT_MODULE, 该值会显示在Settings中的关于手机的型号一栏
    2. build/core/version_defaults.mk中可以修改BUILD_NUMBER,该值会显示在Settings中的版本号一栏

    相关文章

      网友评论

          本文标题:编译7.0源码遇到的问题和解决方案

          本文链接:https://www.haomeiwen.com/subject/tlwcvttx.html