构建android错误java版本

构建android错误java版本,android,building,Android,Building,我是构建android操作系统的新手 我使用Ubuntu14.04LTS和JDK8 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= T

我是构建android操作系统的新手

我使用Ubuntu14.04LTS和JDK8

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是什么呢

我怎样才能解决它


感谢您的帮助

您要求使用OpenJDK 8版本,但您的版本是 java版本“1.7.x”java(TM)SE运行时环境(build 1.7.x)java热点(TM)

您需要类似错误消息状态的Java7。下载OpenJdk 7并安装它。那么你需要

sudo update-alternatives --config java

sudo update-alternatives --config javac
在这两个版本上,选择1.7或7作为版本。
谷歌和XDA已经涵盖了这一点。。。Java-8将用于Android N,但对于KK和MM,您需要7。

我知道这个线程很旧,但我今天正在使用Android 6,所以我也遇到了同样的问题。。。对我来说,这有助于:

如果要强制使用Java 8,可以使用以下方法:

export EXPERIMENTAL_USE_JAVA8=1
然后再做一次:

m
但是,顾名思义,它是实验性的,因此不推荐使用

对于我(Ubuntu 18.04.1),我必须下载Java 7()并:

上面将创建
/usr/lib/jvm/java-se-7u75-ri
,并将其设置为由用户和组
根用户所有

现在将其添加到路径中,如中所述:

[…]在路径的开头添加正确的JDK,或者删除有问题的JDK

我还必须修补
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
,用于
“^java.*[“]1\.7[\.$$]”
,我将其更改为
“^openjdk.*[“]1\.7[\.$$]”

在那之后,我发布了
m
来再次制作


希望这能帮助其他人。:)

您可能还需要运行'ccache-C'并启动一个新的终端,甚至有时重启也会有所帮助。
export PATH="/usr/lib/jvm/java-se-7u75-ri/bin:$PATH"
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