蹉跎莫遣韶光老,人生唯有读书好。这篇文章主要讲述android7.0 编译问题及解决相关的知识,希望能为你提供帮助。
本文转载自:http://blog.csdn.net/zhangmingbao2016/article/details/52699182
注意:Linux操作系统上编译Android
7.0必须使用open-jdk,mac os才可以使用Oraclejdk,我的是ubuntu16.04,下面我将我遇到的问题及解决办法做一个陈述,仅供参考:
1、正常的编译三部曲:
1)source build/envsetup.sh
2)lunch 1
3)make -j32(-j32表示是开启32个线程同时编译,视个人电脑配置而定,我的笔记本8G内存,i5的处理器,256G的固态硬盘一般开10个线程,即make -j10,线程数是2的倍数)
注:android
7.0编译不需要执行make update-api,当然执行了也不会错
我遇到的问题:
1)问题:电脑安装的open-jdk 1.7,但是没有配置环境变量,编译源码时检测不到
原因:在build/envsetup.sh文件中,函数set_java_home()是这样的:
[plain]
view plain
copy
print?
- function set_java_home() {
- # Clear the existing JAVA_HOME value if we set it ourselves, so that
- # we can reset it later, depending on the version of java the build
- # system needs.
- #
- # If we don‘t do this, the JAVA_HOME value set by the first call to
- # build/envsetup.sh will persist forever.
- #export LEGACY_USE_JAVA7=1
- if [ -n "$android_SET_JAVA_HOME" ]; then
- export JAVA_HOME=""
- fi
- if [ ! "$JAVA_HOME" ]; then
- < span style="color:#FF0000; "> if [ -n "$LEGACY_USE_JAVA7" ]; then < /span>
- echo Warning: Support for JDK 7 will be dropped. Switch to JDK 8.
- case `uname -s` in
- Darwin)
- export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
- ; ;
- *)
- export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
- ; ;
- esac
- else
- case `uname -s` in
- Darwin)
- export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
- ; ;
- *)
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- ; ;
- esac
- fi
- # Keep track of the fact that we set JAVA_HOME ourselves, so that
- # we can change it on the next envsetup.sh, if required.
- export ANDROID_SET_JAVA_HOME=true
- fi
- }
,这样就可以通过编译环境检测环节,我在后边还遇到一个错误:javac:invalide source release:1.8(希望你没遇到),至今未解决(如果你解决了,欢迎分享,在set_java_home()中有一个警告:warning:Support for JDK 7 will be dropped.Switch to JDK 8,不知是否是这个原因),我就老老实实的安装了open-jdk 1.8,之后还是遇到了问题,见2)。
2)问题:locale: Cannot set LC_ALL to default locale: No such file or directory
原因:系统bug,在终端输入locale然后回车,输出如下:
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
【android7.0 编译问题及解决】解决办法:编译之前,在终端输入export LC_ALL ="en_US.UTF-8"即可,当然以可以在envsetup.sh中添加(已经证明使可以的)。
推荐阅读
- React使用 create-react-app 快速构建 React 开发环境
- java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener
- 深入浅出 - Android系统移植与平台开发- Android系统的定制
- android中的Intent窗体活动穿梭
- Android实战简易教程-第七十二枪(PopupWindow浮动窗)
- dopdf怎样用?dopdf虚拟打印机的运用办法介绍_其它办公
- dopdf怎样用?dopdf的基础运用图文详细教程_其它办公
- dopdf安装之后在电脑里找不到怎样办?_其它办公
- dopdf安装不上怎样办?dopdf安装不上的处理办法_其它办公