【问题标题】:building android error java version构建android错误java版本
【发布时间】:2016-04-27 08:59:06
【问题描述】:

我是构建安卓操作系统的新手。

我使用 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 building


    【解决方案1】:

    我知道这个帖子很旧,但我今天使用的是 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
    

    请注意,'^java .*[ "]1\.7[\. "$$]'grep'ing,我将其更改为 '^openjdk .*[ "]1\.7[\. "$$]'

    之后,我又发了m再make。

    希望这可以帮助其他人。 :)

    【讨论】:

      【解决方案2】:

      您要求构建 OpenJDK 8,但您的版本是 java 版本 "1.7.x" Java(TM) SE Runtime Environment (build 1.7.x) Java HotSpot(TM)

      您需要 Java 7,如错误消息所述。下载 OpenJdk 7,并安装它。然后你需要

      sudo update-alternatives --config java
      
      sudo update-alternatives --config javac
      

      在这两个版本中选择 1.7 或 7。 Google 和 XDA 已经涵盖了这一点……Java-8 将用于 Android N,但对于 KK 和 MM,您需要 7。

      【讨论】:

      • 您可能还需要运行 'ccache -C' 并启动一个新终端,甚至有时重启会有所帮助。
      猜你喜欢
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多