Android KitKat 在 Ubuntu 14.04 上构建,错误的 JDK

Android KitKat 在 Ubuntu 14.04 上构建,错误的 JDK

我正在尝试在 Ubuntu 14.04 64 位机器上从 android-x86.org 构建 Android-x86 KitKat 分支。

但是,当我运行 make 时,它​​运行了没多久就出现了一个错误,导致编译停止。这似乎是一个 Java 错误,我相信是由我安装的 JDK 版本引起的。

libcore/libdvm/src/main/java/java/lang/Enum.java:150: error: ordinal has private access in Enum
        return ordinal - o.ordinal;
                          ^

我知道 KitKat 需要 JDK 6,所以我安装了 OpenJDK6。我知道它没有完全支持,但没有什么可以说它绝对不会起作用。所以我还是试了一下。

无论如何,我的问题是我找不到安装 Oracle JDK 6 的方法。我尝试了一些存储库,但它们要么过时,要么不再有必要的软件包。我访问了 Oracle 网站存档,但它要求我注册“我的公司”的详细信息,而我不需要提供这些信息。

有什么方法可以安装旧版本的 Oracle JDK?

答案1

这可能是 OpenJDK 的问题。有时需要 Oracle JDK 才能正常工作。

一般来说,JDK 是向下兼容的,您也可以使用版本 8。

以下是安装教程:http://docs.oracle.com/javase/8/docs/technotes/guides/install/linux_jdk.html

如果你已经安装了(即:把它放在驱动器的某个位置)Oracle JDK,你可以使用以下命令选择它:

update-alternatives --config java

我之前遇到过这个问题,如果您想要的 JDK 未列出,则必须先将其添加到 update-alternatives 中:

sudo update-alternatives --install /usr/bin/java java /path/to/your/jdk/bin 1

代替/路径/到/你的与你的路径。

答案2

也许这有帮助:

diff --git a/libdvm/src/main/java/java/lang/Enum.java b/libdvm/src/main/java/java/lang/Enum.java
index 7a0f514..4b897aa 100644
--- a/libdvm/src/main/java/java/lang/Enum.java
+++ b/libdvm/src/main/java/java/lang/Enum.java

@@ -147,7 +147,7 @@
      * @see java.lang.Comparable
      */
     public final int compareTo(E o) {
-        return ordinal - o.ordinal;
+        return ordinal - o.ordinal();
     }

     /**

来源:问题回答

相关内容