編譯單獨(dú)模塊錯(cuò)誤
單獨(dú)編譯libcore
模塊時(shí),會(huì)出現(xiàn)如下的錯(cuò)誤:
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的編譯系統(tǒng),Android 7.0是用
Ninja
再加上Jack
來進(jìn)行編譯,速度上感覺不太明顯,但是占用資源較多,同樣的機(jī)器編譯Android 5.1時(shí),使用make -j32
,其他程序基本不會(huì)受影響,但是在Android 7.0下,如果使用make -j32
之后,整個(gè)電腦卡的跟**一樣...
ADB 錯(cuò)誤
編譯完成后,使用adb reboot bootloader
時(shí)會(huì)報(bào)如下錯(cuò)誤:
error: insufficient permissions for device
報(bào)錯(cuò)的同時(shí),會(huì)在底下建議前往官網(wǎng)查看相應(yīng)文檔,查看文檔可知解決辦法是:
編輯/etc/udev/rules.d/51-android.rules
文件,在其中添加當(dāng)前連接的設(shè)備,格式為:
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
其中, ATTR{idVendor}
的值應(yīng)當(dāng)是當(dāng)前設(shè)備制造商相對(duì)應(yīng)的值,這里我的設(shè)備是Nexus 6,所以相對(duì)應(yīng)的值就是22b8, 最后執(zhí)行:
chmod a+r /etc/udev/rules.d/51-android.rules
常見設(shè)備對(duì)應(yīng)USB Vendor ID
公司 | USB Vendor ID |
---|---|
18d1 | |
HTC | 0bb4 |
Huawei | 12d1 |
Lenovo | 17ef |
LG | 1004 |
Motorola | 22b8 |
Samsung | 04e8 |
Sony | 054c |
ZTE | 19d2 |
上面是一些常用廠商設(shè)備的USB Vendor ID, 完整的列表可以查看官網(wǎng)
根據(jù)官網(wǎng)指導(dǎo),設(shè)置好rules之后應(yīng)該就可以了,如果還是不可以,那么很簡(jiǎn)單,拔了重新插一下usb....
Build
- 在
device/moto/shamu/aosp_shamu.mk
中可以定義PRODUCT_MODULE
, 該值會(huì)顯示在Settings中的關(guān)于手機(jī)的型號(hào)一欄 - 在
build/core/version_defaults.mk
中可以修改BUILD_NUMBER
,該值會(huì)顯示在Settings
中的版本號(hào)一欄