Android 5.0版本与Java版本的问题

我目前在我的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) 

我input了命令来更改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 

configuration完成后,java -version不会更改。

当我尝试构buildAndroid 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 #### 

任何想法呢? 谢谢!

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

我已经find了这个问题的问题。

运行时,Java版本是Openjdk

 . build/envsetup.sh 

但是,当我跑步

 lunch aosp_flo-userdebug 

Java版本切换回Java SE。

请让我知道,如果你有任何想法

谢谢

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

嗨,

 lunch aosp_flo-userdebug 

我试图用这个命令检查我的configuration并切换回Java SE jdk版本。

运行此命令并再次导出我的OpenJDKpath后,使构build工作。

Solutions Collecting From Web of "Android 5.0版本与Java版本的问题"

构buildKitkat需要Sun / Oracle JDK 6版本,构buildLollipop需要OpenJDK 7.目前,我的Ubuntu上都有两个项目。 我使用脚本来切换JDK版本,它的工作原理。

把jdk_switch.sh放到我的〜目录下,运行以下命令切换jdk版本:

 $ . ./jdk_switch.sh jdk7 $ . ./jdk_switch.sh jdk6 

JDK的path是:

 /usr/lib/jvm/java-6-oracle/ /usr/lib/jvm/java-7-openjdk-amd64/ 

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 

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) 

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

build/core/main.mk说:

 # For Java 1.7, we require OpenJDK on linux and Oracle JDK on Mac OS. requires_openjdk := false ifeq ($(HOST_OS), linux) requires_openjdk := true endif 

因此,在Linux上构build的Android 6需要OpenJDK 1.7,这在Ubuntu 16.04 repo中不再可用。

我有几个解决scheme:

  • 将Ubuntu 14.04 LTS安装到VM中(请记住:生命周期是04/2019)
  • 在Android源码中启用实验OpenJDK 1.8支持
  • 从ppa:openjdk / ppa安装OpenJDK 1.7

它适用于我,但你需要关心. ./jdk_switch.sh jdk7 . ./jdk_switch.sh jdk7 ,你需要在这个terminal设置环境,所以你不能设置./jdk_switch.sh jdk7 。 仔细检查你的环境: env|grep java

只有./script表示:运行该脚本没有更多。

“./script”等于“source ./script”:每个导出都会在你当前的bash env中。

在午餐命令之前运行$ export JAVA_HOME = / usr / lib / jvm / java-7 -openjdk-amd64。 它为我工作