android 编译SDK 问题汇总

经过两个多月的项目。android 3.2 qcom 8660,总结一下遇到的问题。

编译android sdk问题汇总:

官方的文档和问题:

src/sdk/docs/howto_build_SDK

  $ . build/envsetup.sh

  $ lunch sdk-eng

  $ make sdk

   Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip

make window sdk 需要mingw的支持

  $ make win_sdk

 

实际工作的步骤

1. 修改 ”\4030\external\libvpx\vpx_config.h” 如下

//#define CONFIG_ARM_ASM_DETOK 1 

2. $ source build/envsetup.sh 

    lunch 1 ; make

3. $ lunch sdk-eng

4. $ make sdk 

在 out/host/linux-x86/sdk/android-sdk_eng.xxxx_linux-x86.zip 下

注意: android-sdk_eng.xxxx_linux-x86.zip 並不包含 emulator, 

你必須手动將out/host/linux-x86/bin/emulator 复制到 android-sdk_eng.xxxx_linux-x86.zip/android-sdk_eng.xxxx_linux-x86/tools/  下

问题汇总,qcom的BSP也有许多问题。在android 标准的sdk上修改了许多。有些在原先在android标准的版本上没有的:经历了几个版本,问题先后记录如下:
 
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ERROR 1:
 error: undefined reference to 'vp8_decode_mb_tokens_v6'
make sdk error:
target SharedLib: libstagefright (out/target/product/generic/obj/SHARED_LIBRARIES/libstagefright_intermediates/LINKED/libstagefright.so)
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: out/target/product/generic/obj/STATIC_LIBRARIES/libvpx_intermediates/libvpx.a(detokenize.o): in function vp8_decode_mb_tokens:external/libvpx/vp8/decoder/detokenize.c:223: error: undefined reference to 'vp8_decode_mb_tokens_v6'
collect2: ld returned 1 exit status
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libstagefright_intermediates/LINKED/libstagefright.so] 错误 1
 
修改方法:

1. 修改 ”\4030\external\libvpx\vpx_config.h” 如下

//#define CONFIG_ARM_ASM_DETOK 1  这句话是针对armv6的。sdk的模拟器是armv5,所以不需要

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

ERROR2:

Package SDK: out/host/linux-x86/sdk/android-sdk_eng.liuhongchao_linux-x86.zip

SDK: warning: including GNU target out/target/product/msm8660_surf/system/lib/libdbus.so

sdk/build/tools.atree:46: couldn't locate source file: usr/share/pc-bios/bios.bin

sdk/build/tools.atree:47: couldn't locate source file: usr/share/pc-bios/vgabios-cirrus.bin

sdk/build/tools.atree:133: couldn't locate source file: framework/ddmlib-tests.jar

sdk/build/tools.atree:134: couldn't locate source file: framework/ninepatch-tests.jar

sdk/build/tools.atree:135: couldn't locate source file: framework/common-tests.jar

sdk/build/tools.atree:137: couldn't locate source file: framework/sdkuilib-tests.jar

make: *** [out/host/linux-x86/sdk/android-sdk_eng.liuhongchao_linux-x86.zip] Error 44

NO sdk/android-sdk_eng.liuhongchao_linux-x86.zip created

解决办法:

这里的framework目录指的是:~/Android_Src/out/host/linux-x86/framework   这个目录,

是sdk/build/tools.atree这个文件有bug,上面那几个文件的路径写的不对,其实在

Src/out/host/linux-x86/framework 目录下是有这几个文件的,

$cp ~/Android_Src/prebuilt/common/pc-bios   ~/Android_Src/usr/share 

$ cd ~/Android_Src/out/host/linux-x86/framework

$cp ddmlib.jar  ddmlib-test.jar   

$cp sdkuilib.jar  sdkuilib-test.jar //其他同样
 
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ERROR 3:
emulator 显示为offline ,无法连接adb调试程序。
使用cmd   查看emulator 启动log如下:
 
liuhongchao@liuhongchao-ThinkCentrer:~/sdk/4037/4037-orig-qcom/out/host/linux-x86/bin$ ./emulator -verbose -shell -kernel ../../../../prebuilt/android-arm/kernel/kernel-qemu -sysdir ../../../../out/debug/target/product/generic/ -system system.img -data userdata.img
 
跟踪代码git log:发现
in file android_src/system/core/rootdir/etc/init.qcom.rc you modify line 535 like next :
 
# WNC:Eaddy 2011/08/23 : Disable the "Failed to locate modem.mdt" error message
#service qmuxd /system/bin/qmuxd
# class main
关键的emulator 服务被屏蔽了 #service qmuxd /system/bin/qmuxd
去掉屏蔽问题解决
 
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ERROR 4:
linux sdk 可以使用。windows sdk启动黑屏
qocm的问题,新版本解决了。没找到什么原因
只是qcom回答,在Make adk之前,需要先 lunch 1;make
lunch 1 就是make full

你可能感兴趣的:(android 编译SDK 问题汇总)