簡體   English   中英

構建android錯誤java版本

[英]building android error java version

我是構建 android 操作系統的新手。

我使用 Ubuntu 14.04 LTS 和 JDK 8。

envsetup.sh 給出:

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=6.0.1
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.13.0-85-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=MASTER
OUT_DIR=out
============================================

我嘗試用make -J4編譯

我得到了愚蠢的錯誤:

============================================
You asked for an OpenJDK 7 build but your version is
java version "1.8.0_92" Java(TM) SE Runtime Environment (build 1.8.0_92-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode).
************************************************************
build/core/main.mk:220: *** stop.
make: *** [out/build-aosp_arm.ninja] Erreur 1
============================================

因此,我將 JDK 更改為版本 7,但出現相同的錯誤但已反轉:

============================================
You asked for an OpenJDK 8 build but your version is
java version "1.7.x" Java(TM) SE Runtime Environment (build 1.7.x) Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode).
************************************************************

那么什么是 pb 呢?

我該如何解決?

感謝您的幫助

我知道這個線程很舊,但我今天正在使用 Android 6,所以我遇到了同樣的問題......對我來說,這有幫助:

如果你想強制使用 Java 8,你可以使用這個:

export EXPERIMENTAL_USE_JAVA8=1

然后再次制作:

m

但是,顧名思義,它是實驗性的,因此不推薦。

對我來說(Ubuntu 18.04.1),我必須下載 Java 7( https://jdk.java.net/java-se-ri/7 )和:

cd /usr/lib/jvm/
sudo tar zxf /tmp/openjdk-7u75-b13-linux-x64-18_dec_2014.tar.gz
sudo chown root:root java-se-7u75-ri -R

以上將創建/usr/lib/jvm/java-se-7u75-ri並將其設置為由用戶和組root擁有。

現在將它添加到PATH ,如https://source.android.com/setup/build/building#wrong-java-version 中所述

[...] 在路徑開頭添加正確的 JDK 或刪除有問題的 JDK。

export PATH="/usr/lib/jvm/java-se-7u75-ri/bin:$PATH"

我還必須修補build/core/main.mk

diff --git a/core/main.mk b/core/main.mk
index a6f829ab6..97690add0 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -153,7 +153,7 @@ javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.8[\. "$$]')
 else # default
 required_version := "1.7.x"
 required_javac_version := "1.7"
-java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]')
+java_version := $(shell echo '$(java_version_str)' | grep '^openjdk .*[ "]1\.7[\. "$$]')
 javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.7[\. "$$]')
 endif # if EXPERIMENTAL_USE_JAVA8

注意它是grep 'ing for '^java .*[ "]1\\.7[\\. "$$]'然后我把它改成了'^openjdk .*[ "]1\\.7[\\. "$$]'

在那之后,我發出了m再次make。

希望這可以幫助其他人。 :)

您要求OpenJDK 8版本,但您的版本是java版本“1.7.x”Java(TM)SE運行時環境(版本1.7.x)Java HotSpot(TM)

您需要Java 7,如錯誤消息狀態。 下載OpenJdk 7,然后安裝它。 然后你需要

sudo update-alternatives --config java

sudo update-alternatives --config javac

在這兩個版本上選擇1.7或7。 谷歌和XDA已經涵蓋了這個...... Java-8將用於Android N的未來,但對於KK和MM,你需要7。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM