Android 5.0 构建错误 Java 版本问题
Android 5.0 build errors with Java version issue
我当前的 java 版本 运行ning 在我的 Ubuntu 14.04 上是
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)
我输入了更改 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
配置后,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 ####
对此有什么想法吗?谢谢!
============================================= =====================================
我找到了这个问题的问题。
当我运行
时java版本是Openjdk
. build/envsetup.sh
然而,当我运行
lunch aosp_flo-userdebug
java 版本切换回 Java SE。
如果您有任何想法,请告诉我
谢谢
============================================= ==============================
嗨,
lunch aosp_flo-userdebug
我认为此命令会检查我的配置并切换回 Java SE jdk 版本。
在 运行 执行此命令并再次导出我的 OpenJDK 路径后,使构建工作正常。
构建 Kitkat 需要 Sun/Oracle JDK 6 版本,构建 Lollipop 需要 OpenJDK 7。目前,我的 Ubuntu 上有这两个项目。我使用脚本来切换 JDK 版本,它可以工作。
把jdk_switch.sh放在我的~目录下运行下面命令切换jdk版本:
$ . ./jdk_switch.sh jdk7
$ . ./jdk_switch.sh jdk6
JDK的路径是:
/usr/lib/jvm/java-6-oracle/
/usr/lib/jvm/java-7-openjdk-amd64/
jdk_switch.sh内容:
#!/bin/bash
case 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
打开JDK 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 脚本。希望对您有所帮助。
它对我有用,但你需要注意. ./jdk_switch.sh jdk7
,你需要在这个终端设置环境所以你不能./jdk_switch.sh jdk7
,设置后。仔细检查您的环境:env|grep java
.
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
因此 Android 6 基于 linux 构建需要 OpenJDK 1.7,它在 Ubuntu 16.04 存储库中不再可用...
我有几个解决方案:
- 将 Ubuntu 14.04 LTS 安装到 VM 中(请记住:生命周期结束日期为 04/2019)
- 在 Android 源
中启用 experimental OpenJDK 1.8 support
- 从 ppa:openjdk/ppa
安装 OpenJDK 1.7
仅 ./script 表示:运行 该脚本仅此而已。
"../script" 等于 "source ./script":每次导出都将在您当前的 bash 环境中..
就运行
$ 导出 JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
午餐命令前。
它对我有用
我当前的 java 版本 运行ning 在我的 Ubuntu 14.04 上是
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)
我输入了更改 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
配置后,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 ####
对此有什么想法吗?谢谢!
============================================= =====================================
我找到了这个问题的问题。
当我运行
时java版本是Openjdk. build/envsetup.sh
然而,当我运行
lunch aosp_flo-userdebug
java 版本切换回 Java SE。
如果您有任何想法,请告诉我
谢谢
============================================= ==============================
嗨,
lunch aosp_flo-userdebug
我认为此命令会检查我的配置并切换回 Java SE jdk 版本。
在 运行 执行此命令并再次导出我的 OpenJDK 路径后,使构建工作正常。
构建 Kitkat 需要 Sun/Oracle JDK 6 版本,构建 Lollipop 需要 OpenJDK 7。目前,我的 Ubuntu 上有这两个项目。我使用脚本来切换 JDK 版本,它可以工作。
把jdk_switch.sh放在我的~目录下运行下面命令切换jdk版本:
$ . ./jdk_switch.sh jdk7
$ . ./jdk_switch.sh jdk6
JDK的路径是:
/usr/lib/jvm/java-6-oracle/
/usr/lib/jvm/java-7-openjdk-amd64/
jdk_switch.sh内容:
#!/bin/bash
case 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
打开JDK 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 脚本。希望对您有所帮助。
它对我有用,但你需要注意. ./jdk_switch.sh jdk7
,你需要在这个终端设置环境所以你不能./jdk_switch.sh jdk7
,设置后。仔细检查您的环境:env|grep java
.
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
因此 Android 6 基于 linux 构建需要 OpenJDK 1.7,它在 Ubuntu 16.04 存储库中不再可用...
我有几个解决方案:
- 将 Ubuntu 14.04 LTS 安装到 VM 中(请记住:生命周期结束日期为 04/2019)
- 在 Android 源 中启用 experimental OpenJDK 1.8 support
- 从 ppa:openjdk/ppa 安装 OpenJDK 1.7
仅 ./script 表示:运行 该脚本仅此而已。
"../script" 等于 "source ./script":每次导出都将在您当前的 bash 环境中..
就运行 $ 导出 JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 午餐命令前。 它对我有用