Android8.0源码编译填坑之路

环境:Mac10.13.4

问题一:
system/core/base/logging.cpp:81:10: 'syscall' is deprecated: first deprecated in OS X 10.12 - syscall(2) is unsupported; 
please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost(). [-Werror,-Wdeprecated-declarations]


system/core/base/logging.cpp:81:10: error: 
'syscall' is deprecated: first deprecated in OS X 10.12 - syscall(2) is unsupported; 
please switch to a supported interface. 
For SYS_kdebug_trace use kdebug_signpost(). 
[-Werror,-Wdeprecated-declarations]
  return syscall(SYS_thread_selfid);
  
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/unistd.h:733:6: note: 'syscall' has been explicitly marked deprecated here
int      syscall(int, ...);
1 error generated.
[  0% 142/32130] host C++: libbacktrac...tem/core/libbacktrace/BacktraceMap.cpp
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1


解决方式:
去到/Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs,
发现MacOSX10.11.sdk已经被删除,只剩下MacOSX10.12.sdk,
所以首先要去下载10.11的SDK。可以去MacOSX-SDKs下载MacOSX10.11.sdk,
解压拷贝到/Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs。
为了避免下次升级的时候再被删除,可以放到~/Document/MacOSX10.11.sdk,再给它创建一个软链接:




问题二:
ninja: build stopped: subcommand failed.  
make: *** [ninja_wrapper] Error 1 

解决方式:
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"




问题三:
none of the installed SDKs (ac_sdk_versions_installed) match supported versions (10.8 10.9 10.10 10.11), trying 10.8  
直接找到这个文件build/core/combo/mac_version.mk修改其中的 mac_sdk_versions_installed
加上我mac的版本10.13,解决了这个错误。




问题四:
build/core/config.mk:600: *** Error: could not find jdk tools.jar at /System/Library/Frameworks/JavaVM.
framework/Versions/Current/Commands/../lib/tools.jar, please check if your JDK was installed correctly.  Stop.  

解决方式:
找到:build/core/config.mk:600
找到:sh文件:
让ANDROID_JAVA_HOME = JAVA_HOME

问题五:
fatal error: too many errors emitted, stopping now [-ferror-limit=]  

解决方式:
将xcode切换为老版本

问题六:
FAILED: setup-jack-server
Jack server installation not found
到prebuilts/sdk/tools 目录下执行一下这个命令:
./jack-admin install-server jack-launcher.jar jack-server-4.11.ALPHA.jar

问题七:
模拟器黑屏问题
emulator -kernel /Volumes/android/android-source/prebuilts/qemu-kernel/arm/kernel-qemu-armv7 -system system.img -data userdata.img -ramdisk ramdisk.img
又会提示:
New emulator backend requires minimum kernel version 3.10+ (currently got lower)
Please make sure you've got updated system images and do not force the specific kernel 
image together with the engine version
(新的仿真器后端需要最小内核版本3.10 +(当前更低)请确保您已经获得了更新的系统映像,并且不要将特定内核映像与引擎版本一起强制。)

emulator -partition-size 1024 -skin WVGA854
编译完成后启动虚拟机时,卡在黑屏,尝试编译aosp_arm64-eng解决.因此,这里我使用了aosp_arm64-eng

问题八:
error: ro.build.fingerprint cannot exceed 91 bytes: Android/mini_emulator_x86/mini-emulator-x86:8.0.0/OPR6.170623.013/jkerte05091121:userdebug/test-keys (100)
1:编辑build/tools/post_process_props.py。换行如下:
PROP_NAME_MAX = 31
# PROP_VALUE_MAX = 91
PROP_VALUE_MAX = 128

2:编辑bionic/libc/include/sys/system_properties.h。换行如下:
#define PROP_NAME_MAX   32
// #define PROP_VALUE_MAX  92
#define PROP_VALUE_MAX  128

3:做
make clean
make
您也可以使用如下语法并行运行第二个make命令
make -j8

问题九:
frameworks/native/cmds/installd/installd.cpp:43:1: error: static_assert failed "Size mismatch."

frameworks/native/cmds/installd/installd_deps.h


// LY mod
// constexpr size_t kPropertyValueMax = 92u;

   constexpr size_t kPropertyValueMax = 128u;

8.0配置:
        PLATFORM_VERSION_CODENAME=REL
        PLATFORM_VERSION=8.0.0
        TARGET_PRODUCT=mini_emulator_x86
        TARGET_BUILD_VARIANT=userdebug
        TARGET_BUILD_TYPE=release
        TARGET_ARCH=x86
        TARGET_ARCH_VARIANT=x86
        HOST_ARCH=x86_64
        HOST_2ND_ARCH=x86
        HOST_OS=darwin
        HOST_OS_EXTRA=Darwin-17.5.0-x86_64-i386-64bit
        HOST_BUILD_TYPE=release
        BUILD_ID=OPR6.170623.013
        OUT_DIR=out


lunch目录:

     1. aosp_arm-eng
     2. aosp_arm64-eng
     3. aosp_mips-eng
     4. aosp_mips64-eng

     5. aosp_x86-eng

     6. aosp_x86_64-eng
     7. full_fugu-userdebug
     8. aosp_fugu-userdebug
     9. car_emu_arm64-userdebug
     10. car_emu_arm-userdebug
     11. car_emu_x86-userdebug
     12. car_emu_x86_64-userdebug
     13. mini_emulator_arm64-userdebug
     14. m_e_arm-userdebug
     15. m_e_mips-userdebug
     16. m_e_mips64-eng
     17. mini_emulator_x86-userdebug
     18. mini_emulator_x86_64-userdebug
     19. aosp_dragon-userdebug
     20. aosp_dragon-eng
     21. aosp_marlin-userdebug
     22. aosp_marlin_svelte-userdebug
     23. aosp_sailfish-userdebug
     24. aosp_angler-userdebug
     25. aosp_bullhead-userdebug
     26. aosp_bullhead_svelte-userdebug
     27. hikey-userdebug



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值