当前位置:   article > 正文

macOs中android源码下载及编译过程问题总结_gpg (gnupg) is not available

gpg (gnupg) is not available

产考资源
源码下载官方参考地址:https://source.android.com/source/downloading.html
源码版本官方产考地址:https://source.android.com/source/build-numbers.html#source-code-tags-and-builds
清华镜像源下载产考地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP

下载过程遇到的问题

1. fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

解决办法有两种:

2. gpg (GnuPG) is not available

解决办法: 请点击这里安装GunPG

编译过程遇到的问题

1. internal error: Could not find a supported mac sdk: [“10.10” “10.11” “10.12”]

缺少对应版本的sdk,这里给出两种解决办法:

  • 查找mac sdk版本,执行命令:ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
    如图:在这里插入图片描述
    然后build/soong目录按文件内容搜索"10.10",找到了文件bulid/soong/cc/config/x86_darwin_host.go文件,只需修改对应内容即可,如图:
    在这里插入图片描述
  • 请点击这里下载对应sdk,解压并复制到
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/目录下,重新编译即可。
2. build/core/config.mk:663: error: 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.

解决办法:在config.mk中找到663行发现如图代码:在这里插入图片描述
这段代码主要是通过find-jdk-tools-jar.sh脚本来寻找jdk路径并赋给HOST_JDK_TOOLS_JAR,打开find-jdk-tools-jar.sh文件后发现如下代码:
在这里插入图片描述
对比错误日志信息可以看出图中代码执行的是else分支(错误日志中的…/lib/tools.jar提示和else分支echo输出对应),那么最终查出没有ANDROID_JAVA_HOME环境变量,设置即可,步骤如下:
在~/.bash.profile中添加如下代码:
export ANDROID_JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk.xxx.jdk/Contents/Home
export PATH=$ANDROID_JAVA_HOME:$PATH
然后,重启terminal再次编译即可。

3. error: Case-insensitive filesystems not supported.

mac默认磁盘是不区分大小写,android源码编译需要区分大小写,这个问题在使用git提交有大写字母的文件名时可能会遇到。解决办法有多种,本文选取最简单的一种:用磁盘工具新建一个对大小写敏感的宗卷,然后把源码拷贝到该目录重新执行编译即可。建立宗卷如图:
在这里插入图片描述

4. error:external/googletest/googletest: MODULE.TARGET.STATIC_LIBRARIES.libgtest already defined by external/googletest/googletest

变量重复定义,查询资料原来是NDK_ROOT在环境变量中已经定义过了,和源码冲突,终端执行命令:unset NDK_ROOT,重新编译即可。

5. 带有aidl_language_l的错误,如: lex out/soong/.inter…/system/tools/aidl/aidl_language_l.cpp ninja: build stopped: subcommand failed.

解决办法,在源码目录依次输入命令 :
source build/envsetup.sh
lunch full-eng
cd external/bison
git cherry-pick c0c852bd6fe462b148475476d9124fd740eba160
mm
cd . ./. ./
cp out/host/darwin-x86/bin/bison prebuilts/misc/darwin-x86/bison/
make -j4

6. 带有’_Nullable'的错误 如:nullability specifier ‘_Nullable’ cannot be applied to non-pointer type ‘uuid’

解决办法:macOS新版 sdk 的一些api接口发生变化,请点击这里下载低版本sdk版本即可(笔者降低到是10.12),sdk安装方法可参照上述编译问题1。

7. Communication error with Jack server (52). Try ‘jack-diagnose’

解决办法编译信息中有提示:Ensuring Jack server is installed and started,首先启动jack server,命令为:jack-admin start-server,如果启动不成功则检查是否安装。

8. Out of memory error (version 1.3-rc6 ‘Douarn’ (441800 22a11d4b264ae70e366aed3025ef47362d1522bb by android-jack-team@google.com)).GC overhead limit exceeded.Try increasing heap size with java option ‘-Xmx<size>’.

解决办法在错误信息中有提示:分配内存不足,要增加内存,具体增加多少根据自己电脑内存合理分配,比如设置内存为4g 即为 -Xmx4g,具体操作方法如下:
停止jack-admin: jack-admin kill-server
找到并打开jack-admin文件:out/host/darwin-x86/bin/jack-admin
将jack-admin文件中 JACK_SERVER_COMMAND="java 修改为 JACK_SERVER_COMMAND="java -Xmx4g
重启jack-admin: jack-admin start-server
重新编译:make -j4

9.frameworks/av/media/libstagefright/DataSource.cpp:29:10: fatal error: ‘media/stagefright/DataURISource.h’ file not found

有两种办法

  • 找到frameworks/av/media/libstagefright/include/DataUriSource.h,拷贝该文件并替换文件内容和文件名为DataURISource。
  • 进入frameworks/av/media/libstagefright/include目录添加DataURISource.h文件
10.external/iptables/extensions/…/include/linux/netfilter_ipv4/ipt_ECN.h:13:10

解决办法和问题9类似:
cd external/iptables/extensions/…/include/linux/netfilter
找到xt_dscp.h制作副本,替换文件名为xt_DSCP.h(只替换文件名)

11. /bin/bash: xz: command not found. ninja: build stopped: subcommand failed.

解决办法:安装xz,步骤如下:
下载xz-utils,下载完成后解压,并进入该文件目录,进行安装,xz安装步骤如下:
sh configure
make
make check
make install
mak installcheck
至此xz安装完成。

功夫不负有心人,最后截一幅编译成功的图
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/129226
推荐阅读
相关标签
  

闽ICP备14008679号