Android 5.0构建错误与Java版本问题

Sam*_*Sam 9 android android-build

我目前在我的Ubuntu 14.04上运行的java版本是

java -version
java version "1.7.0_72"
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我输入了更改java版本的命令

sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
  ------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
* 1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1         manual mode

Press enter to keep the current choice[*], or type selection number: 1
test@test-ZX-530:/media/test/SSD/N7$ sudo update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                         Priority   Status
  ------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1071      auto mode
* 1            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1071      manual mode
  2            /usr/lib/jvm/java-7-oracle/bin/javac          1         manual mode

Press enter to keep the current choice[*], or type selection number: 1
Run Code Online (Sandbox Code Playgroud)

配置完成后,java -version不会改变.

当我尝试构建Android 5.0时,出现错误并显示以下错误消息:

============================================
Checking build tools versions...
************************************************************
You asked for an OpenJDK 7 build but your version is
java version "1.7.0_72" Java(TM) SE Runtime Environment (build 1.7.0_72-b14) Java     HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode).
************************************************************
build/core/main.mk:191: *** stop. Stop.

#### make failed to build some targets  ####
Run Code Online (Sandbox Code Playgroud)

对此有何意见?谢谢!

================================================== ================================

我已经找到了这个问题的问题.

我跑的时候java版是Openjdk

. build/envsetup.sh
Run Code Online (Sandbox Code Playgroud)

但是,当我跑

lunch aosp_flo-userdebug
Run Code Online (Sandbox Code Playgroud)

java版本切换回Java SE.

如果您有任何想法,请告诉我

谢谢

================================================== =========================

嗨,

lunch aosp_flo-userdebug
Run Code Online (Sandbox Code Playgroud)

我thihk这个命令检查我的配置并切换回Java SE jdk版本.

运行此命令并再次导出我的OpenJDK路径后,使构建工作.

小智 14

构建Kitkat需要Sun/Oracle JDK 6版本,构建Lollipop需要OpenJDK 7.目前,我在Ubuntu上有两个项目.我使用脚本来切换JDK版本,它可以工作.

将jdk_switch.sh放在我的〜目录中并运行以下命令切换jdk版本:

$ . ./jdk_switch.sh jdk7
$ . ./jdk_switch.sh jdk6
Run Code Online (Sandbox Code Playgroud)

JDK的路径是:

/usr/lib/jvm/java-6-oracle/
/usr/lib/jvm/java-7-openjdk-amd64/
Run Code Online (Sandbox Code Playgroud)

jdk_switch.sh的内容:

#!/bin/bash
case $1 in
    jdk6)
 export JAVA_HOME=/usr/lib/jvm/java-6-oracle/
 ;;
    jdk7)
 export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
 ;;
    *)
 export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
 ;;
esac

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

java -version
Run Code Online (Sandbox Code Playgroud)

OpenJDK 7版本是:

java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
Run Code Online (Sandbox Code Playgroud)

在您的情况下,导出PATH和CLASSPATH可能会有所帮助.或者只使用一个简单的bash脚本.我希望这对你有帮助.