关于如何配置构建环境,请参阅相关文章,在这里直奔主题,我希望编译android2.1(代号eclair)版本的helix player, 所以分支、profile、目标选择如下:
SYSTEM_ID android-eclair-arm.eabi
[0] Set BIF branch (hxclient_3_1_0_atlas_restricted)
[1] Set Target(s) (splay-hxclnsdk)
[2] Set Profile (helix-client-android-full)
[3] run: build -trelease
这时出现如下错误:
[#-00000242][2010-07-06 10:11:18][-1216014656][ERROR] : --- Build System Error ------------------------------------
You have found a Ribosome bug.
-----------------------------------------------------------
--- Python Traceback --------------------------------------
------------------------------------
Traceback (most recent call last):
File "/home/chenzhengyong/android/helix/build/bin/launcher.py", line 117, in __runTool
tool.run()
File "/home/chenzhengyong/android/helix/build/lib/build_exe.py", line 897, in run
ShellToolApp().main()
File "/home/chenzhengyong/android/helix/build/lib/build_exe.py", line 471, in main
apply(self.menu[i][1], self.menu[i][2:])
File "/home/chenzhengyong/android/helix/build/lib/build_exe.py", line 585, in Build
self.build(self.flags)
File "/home/chenzhengyong/android/helix/build/lib/build_exe.py", line 493, in build
invoke_buildsystem(arg_list)
File "/home/chenzhengyong/android/helix/build/lib/build_exe.py", line 112, in invoke_buildsystem
app = buildapp.RunBuild(arg_list)
File "/home/chenzhengyong/android/helix/build/lib/buildapp.py", line 102, in RunBuild
app.main()
File "/home/chenzhengyong/android/helix/build/lib/buildapp.py", line 201, in main
self.run()
File "/home/chenzhengyong/android/helix/build/lib/buildapp.py", line 378, in run
self.build_info()
File "/home/chenzhengyong/android/helix/build/lib/buildapp.py", line 1459, in build_info
umake.Umake( ["__print_version_and_exit__"] )
File "/home/chenzhengyong/android/helix/build/umake/umake.py", line 3107, in Umake
RunUmake(um_opts)
File "/home/chenzhengyong/android/helix/build/umake/umake.py", line 3001, in RunUmake
exec_config_file("%s.cf" % (sysinfo.id))
File "/home/chenzhengyong/android/helix/build/umake/umake.py", line 494, in exec_config_file
my_exec_file(os.path.join(UMAKECF_ROOT, filename), filename)
File "/home/chenzhengyong/android/helix/build/umake/umake.py", line 486, in my_exec_file
exec code in globs
File "android-eclair-arm.eabi.cf", line 133, in <module>
File "/home/chenzhengyong/android/helix/build/umake/umake.py", line 2390, in GetSDKPath
umake_lib.fatal(" Failed to find path to/n SDK named '%s'. Please read documentation for instructions/n on how to obtain and install this SDK." % sdk_name)
File "/home/chenzhengyong/android/helix/build/umake/umake_lib.py", line 84, in fatal
raise err.Error(text)
Error: Failed to find path to
SDK named 'android_source'. Please read documentation for instructions
on how to obtain and install this SDK.
-----------------------------------------------------------
解决方法是:定义环境变量android_source指向android 2.1的源代码路径。
编译结果:
Build complete in 47:52, 34 of 95 modules failed.
察看build.log,发现有如下错误:
/bin/sh: /home/chenzhengyong/android/source/eclair/out/host/linux-x86/bin/soslim: not found
解决方法是编译android 2.1源代码。再次编译,结果如下:
MD5 (release/amrn.so).................3fa72b2e007a51dff4f0adf23f7f542e
MD5 (release/amrw.so).................d9dcff4e357820b4c285f25561bf824f
MD5 (release/colorcvt.so).............a427a87c61ec39c7c4e54eb1f20c807f
MD5 (release/colorcvtlib.a)...........aee6ae72b8e9379d10a75664e51e35fc
MD5 (release/cvt1.so).................4dd7927024f6f7b0df99ba9d49d4e7c3
MD5 (release/dmp4.so).................07c4d8b52b13a00e26a12c7f9ef0eb2f
MD5 (release/drv2.so).................22b8db1f1fe95ecf061b2cf749a34bf8
MD5 (release/drvc.so).................c869e878dc0315e1b56e8d6f5992933c
MD5 (release/h263render.so)...........62e2a981b3a9ea10e8f414ef576197e3
MD5 (release/httpfsys.so).............e2649ec93d472ec385179b1511b90644
MD5 (release/hxltcolor.so)............529397162450f752d2846ee547395f40
MD5 (release/hxmedplyeng.so)..........6d852fe990f0913f5913678f7fc07792
MD5 (release/hxnetwksvc.so)...........fad12f5773c0b9962ffdfdc83cf49819
MD5 (release/hxsdp.so)................fb127b58b06998aaed7cb034ab86fdc0
MD5 (release/hxxml.so)................4489fc1bd93b5d945bdcaa812aa2fc93
MD5 (release/mp3fformat.so)...........5d8d71bd1644491a57ab79b0fb0f80e2
MD5 (release/mp3render.so)............8b50c33f1b678692500cd56c7f275174
MD5 (release/mp4arender.so)...........3da2874be54bbbb5839e07683120875f
MD5 (release/mp4fformat.so)...........dda1502ba31ca4c7354688d9fa587266
MD5 (release/mp4v.so).................240fecdaeea88bdfae01e58283efd7e3
MD5 (release/mp4vrender.so)...........8c5cc96527a1f1d9dc92f4e55ef94541
MD5 (release/ramfformat.so)...........80d286ce125c61d458b632c448637170
MD5 (release/ramrender.so)............90de966d5875d0fc15bf1910b406b45c
MD5 (release/rarender.so).............7fb9455c4e7f5ead1e2518c8de854e48
MD5 (release/rmfformat.so)............1c99c9002fcb67a087d340a7c6e29f20
MD5 (release/rtspclnt.so).............35d618d69bc8e84bb29dcf512ca74d30
MD5 (release/rv20.so).................18f6d36de86c47d2939a3eb2af9c0a65
MD5 (release/rv30.so).................a39d2e0f59269d249112f36549b8aa7b
MD5 (release/rv40.so).................6fa1bd183332a7fb48e21c56b71d5538
MD5 (release/rvg2dec).................b312ef328bd5cfce1c45b6bcb0039002
MD5 (release/rvrender.so).............71d9a19018d26acc158a6385cc2ed809
MD5 (release/smplfsys.so).............347c22e4458760fb391acd4dd541f9c3
MD5 (release/vidsite.so)..............81fbe8229ae864b490338f56c1d6f23a
Build complete in 08:05, 7 of 95 modules failed.
build/core/product_config.mk:261: WARNING: adding test OTA key============================================TARGET_PRODUCT=genericTARGET_BUILD_VARIANT=engTARGET_SIMULATOR=TARGET_BUILD_TYPE=releaseTARGET_ARCH=armHOST_ARCH=x86HOST_OS=linuxHOST_BUILD_TYPE=releaseBUILD_ID=============================================frameworks/policies/base/PolicyConfig.mk:22: *** No module defined for the given PRODUCT_POLICY (android.policy_phone). Stop.
网上找到的解决方法是:在build/tools/findleaves.sh中的第89行,
将 find "${@:0:$nargs}" $findargs -type f -name "$filename" -print |
改为find "${@:1:$nargs-1}" $findargs -type f -name "$filename" -print |
再次make,又出现如下错误:
frameworks/base/tools/aidl/AST.cpp:10: error: 'fprintf' was not declared in this scope
解决方法:使用gcc-4.3和g++-4.3