android 7.1 编译出错汇总

在android编译的过程中可能出现各种奇怪的问题,所以特开一篇文章来汇总下在编译过程中出现的问题,之后出现的问题也会在此文章中追加。如果有大佬在编译过程中出现问题想要投稿的,请联系752134268,众人拾柴火焰高,让我们一起帮助在编译过程中遇到问题的战友。

 

错误一、编译时出现java.io.FileNotFoundException: .x509.pem

Exception in thread "main" java.io.FileNotFoundException: .x509.pem (没有那个文件或目录)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.(FileInputStream.java:138)
	at java.io.FileInputStream.(FileInputStream.java:93)
	at com.android.verity.Utils.loadPEMCertificate(Utils.java:214)
	at com.android.verity.BootSignature.doSignature(BootSignature.java:241)
	at com.android.verity.BootSignature.main(BootSignature.java:316)
[ 31% 19604/62002] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/android-support-v7-appcompat_intermediates/classes.jack
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] 错误 1

先上结论:这种错误是自己在修改源码过程中修改了build/core/product.mk文件所致。

排查思路:(首先源码要有代码管理工具,方便追溯修改的内容)

1、通过git status 查看修改记录,获取到的结果如下

2、通过git diff 查看文件都做了哪些变动

3、最终排查下来是build/core/product.mk这个文件中误删了上面红框内容,然后使用git checkout -- build/core/product.mk 来丢弃工作区的修改。

4、然后make clean,再make 发现编译通过了。 

最终总结,在修改源码的过程中,使用vim 不太熟练的情况很容易误删代码,有时候修改的过程中,空格、回车都有可能导致编译失败。 所以在修改源码的过程中,一定要慎重、慎重、再慎重,实在不放心就先用git diff 检查以下变动的内容。

错误二、出现以下错误

You asked for an OpenJDK based build but your version is

java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode).

原因是编译时要安装 openjdk而不是jdk

解决方法:

1、下载安装openjdk

sudo apt-get install openjdk-8-jdk

2、环境变量设置

sudo vim  /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
sudo vim  /etc/profile

#set Java environment  
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

3、source /etc/environment /etc/profile

错误二 解决方案参考博客https://blog.csdn.net/yang_quan_yang/article/details/80340814

加油,只要思想不滑坡,方法总比困难多。

 

你可能感兴趣的:(android 7.1 编译出错汇总)