RK3576 安卓14编译报错

ubuntu 22.04

Posted by LXG on July 9, 2025

内存不足编译报错


Killed
ninja: build stopped: subcommand failed.
11:11:40 soong bootstrap failed with: exit status 1

报错原因

内存不足或 OOM

如果看到 Killed 而没有详细错误,几乎可以肯定是 被系统 OOM killer 杀死了。

解决方案-1

增加新的内存条

解决方案-2

  1. 降低编译线程数量到16
  2. 扩充交换分区空间

sudo swapoff /swapfile
sudo fallocate -l 64G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

升级包编译报错信息


Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:621)
Build android failed!

报错原因

报错原因:调用 signapk 的 Java 运行时是 Java 8(只支持 class file 52),但 signapk.jar 是用 Java 11(class file 55)编译的

解决方案

  1. 切换java版本为17:sudo update-alternatives –config java
  2. 修改脚本中的java版本为17

diff --git a/device/rockchip/common/build/rockchip/build.sh b/device/rockchip/common/build/rockchip/build.sh
index 80fc8f7fb06..61d889f9c54 100755
--- a/device/rockchip/common/build/rockchip/build.sh
+++ b/device/rockchip/common/build/rockchip/build.sh
@@ -197,7 +197,7 @@ TARGET_PRODUCT=`get_build_var TARGET_PRODUCT`
 TARGET_BOARD_PLATFORM=`get_build_var TARGET_BOARD_PLATFORM`
 
 #set jdk version
-export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
 export PATH=$JAVA_HOME/bin:$PATH
 export PATH=$ANDROID_BUILD_TOP/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH
 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
diff --git a/device/rockchip/common/javaenv.sh b/device/rockchip/common/javaenv.sh
index 8b96c75da5d..64971007dc5 100644
--- a/device/rockchip/common/javaenv.sh
+++ b/device/rockchip/common/javaenv.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 
 export PATH=$JAVA_HOME/bin:$PATH