今天在看MTK提供的SDK编译文档,按照步骤做,结果出错了,文档如下:
2- Building an SDK for MacOS and Linux
--------------------------------------
First, setup your development environment and get the Android source code from
git as explained here:
http://source.android.com/source/download.html
For example for the cupcake branch:
$ mkdir ~/my-android-git
$ cd ~/my-android-git
$ repo init -u https://android.googlesource.com/platform/manifest -b master -g all,-notdefault,tools
$ repo sync
Then once you have all the source, simply build the SDK using:
$ cd ~/my-android-git
$ . build/envsetup.sh
$ lunch sdk-eng 这个sdk-eng指的是对应的mtk版本
$ make sdk
This will take a while, maybe between 20 minutes and several hours depending on
your machine. After a while you'll see this in the output:
Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip
Some options:
- Depending on your machine you can tell 'make' to build more things in
parallel, e.g. if you have a dual core, use "make -j4 sdk" to build faster.
- You can define "BUILD_NUMBER" to control the build identifier that gets
incorporated in the resulting archive. The default is to use your username.
One suggestion is to include the date, e.g.:
$ export BUILD_NUMBER=${USER}-`date +%Y%m%d-%H%M%S`
There are certain characters you should avoid in the build number, typically
everything that might confuse 'make' or your shell. So for example avoid
punctuation and characters like $ & : / \ < > , and .
我直接按照上面的命令敲,结果发现出错,后来才知道,这里是sdk指的是对应的某某工程的名字,我这个工程名为
em_t8370_emmc,所以我的sdk名字就是em_t8370_emmc,看来文档有时会让人产生误解的啊,还好是老一辈的总工告诉了我,不然我还蒙在谷里呢!!今天总算知道了,呵呵呵。
然后,说说我遇到的问题和如何解决的方法吧:
1、按照源码中sdk目录下的howto_build_SDK.txt参考文档的编译方式
$ cd ~/my-android-git
$ . build/envsetup.sh
$ lunch sdk-eng
$ make sdk
结果,产生错误log信息如下:
device/mediatek/build/build/libs/custom.mk:159: PWD = /mnt/sdb1/yangyx/MT8127_M0_MP8_0407
device/mediatek/build/build/libs/custom.mk:160: *** Can not find ProjectConfig.mk , MTK_PROJECT_CONFIGS = . Stop.
#### make failed to build some targets (48 seconds) ####
2、根据一些参考资料,我解决以上相关问题采用以下步骤:
source build/envsetup
lunch em_t8370_emmc-user
source build/envsetup #需要重新source一次,我也不知道为什么,如果不重新再执行这句话,编译还是会产生像上面一样的问题。
make sdk
结果,产生的错误log信息如下:
Package SDK: out/host/linux-x86/sdk/em_t8370_emmc/android-sdk_1476082019_linux-x86.zip
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libexif.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libext2_blkid.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libext2_com_err.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libext2_e2p.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libext2_profile.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libext2_quota.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libext2_uuid.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libext2fs.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libiprouteutil.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libnetlink.so
SDK: warning: including GNU target out/target/product/em_t8370_emmc/system/lib/libnl.so
development/build/sdk.atree:49: couldn't locate source file: bin/etc1tool
development/build/sdk.atree:88: couldn't locate source file: bin/split-select
development/build/sdk.atree:93: couldn't locate source file: bin/bcc_compat
development/build/sdk.atree:186: couldn't locate source file: framework/layoutlib.jar
development/build/sdk.atree:525: couldn't locate source file: framework/layoutlib-tests.jar
development/build/sdk.atree:526: couldn't locate source file: system/app/EmulatorSmokeTests/EmulatorSmokeTests.apk
make: *** [out/host/linux-x86/sdk/em_t8370_emmc/android-sdk_1476082019_linux-x86.zip] Error 44
3、注释以上sdk.atress 49 88 93 186 525 526 相关的脚本
编译成功,在相关目录下生成以下的文件:
Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip
生成的android.jar是最新的:
/out/host/linux-x86/sdk/em_t8370_emmc/android-sdk_1476083189_linux-x86/platforms/android-6.0/android.jar