RK3576 Android14编译OTA包提示java.lang.UnsupportedClassVersionError问题

最近遇到RK3576 Android14编译OTA包时,出现如下报错log:

bash 复制代码
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

查找网上的资料发现是java版本不对,编译使用的javac版本和运行的java版本不一直。

通过

复制代码
java --version

命令查看当前系统的java版本是jdk8(刚好对应log里面的52版本).

于是使用下面命令安装jdk11(jdk11对应log里面的55版本)

复制代码
sudo apt-get install openjdk-11-jdk

安装以后手动选择一下java版本和javac版本。
sudo update-alternatives --config java
复制代码
sudo update-alternatives --config javac

然后重新编译OTA包,发现还是报一样的错误,真是百思不得其解。

后面下意识的查看了一下SDK里面的编译脚本build.sh。发现里面会去设置java的版本。。。

bash 复制代码
#set jdk version
export JAVA_HOME=/usr/lib/jvm/java-8-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

这里设置了jdk8版本

于是修改了一下export JAVA_HOME,将其指定为jdk11,重新编译,没有就报错了~:

diff 复制代码
#export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
相关推荐
用户2181697049302 小时前
Kotlin 语法二
android
妖星2 小时前
android 源码分析surfaceFinger是如何通过设置属性启动bootanim
android
JoyMonitor2 小时前
APK mmap 内存增长定位:pagemap 与 DEX 结构联合定位方法
android
有什么事2 小时前
永久虚拟免费云手机能实现吗,本地安卓容器与云端托管的技术边界
android·智能手机
妖星2 小时前
Android 源码 .rc 语法详解
android
JMchen2 小时前
实战项目一——实现一个高性能图片滤镜App
android·c++·性能优化
白帽攻防录3 小时前
SRC 挖洞:Android 蓝牙预认证 RCE 深度复盘,CVE-2026-55330 怎么在蓝牙范围内零交互攻破手机
android·网络安全·智能手机·src漏洞挖掘
vilya3 小时前
手机端 Agent 是怎么跑起来的:决策循环、四道护栏、两条红线
android·agent
2501_915921433 小时前
详细教程:使用Perfdog工具测量iOS应用的功耗性能与优化方法
android·macos·ios·小程序·uni-app·cocoa·iphone
hunterandroid4 小时前
android方案 : Multiplatform 跨平台开发实战:一套代码,多端运行
android·前端