You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Mint编译Android Marshmello失败求助:javac版本异常报错

Fixing "javac: invalid source release: 1.7" Error When Compiling Android Marshmallow on Linux Mint

我之前在编译Android Marshmallow这类旧版本系统时,也踩过版本匹配的坑,咱们一步步来排查解决这个问题:

先确认环境变量是否真的生效

虽然你已经在.bashrc里配置了JAVA_HOME和ANDROID_JAVA_HOME,但有时候终端没加载新的配置,或者优先级被其他路径覆盖了:

  • 先重启终端,或者执行source ~/.bashrc让配置生效
  • 分别执行以下命令,确认输出正确:
    echo $JAVA_HOME  # 应该输出/usr/lib/jvm/java-7-openjdk-amd64
    echo $ANDROID_JAVA_HOME  # 同上
    echo $PATH  # 确保$JAVA_HOME/bin在PATH最前面,避免系统先找到其他版本的javac
    
  • 直接调用指定路径的javac验证版本:
    /usr/lib/jvm/java-7-openjdk-amd64/bin/javac -version
    
    这个必须输出javac 1.7.0_161,如果不是,说明这个路径下的Java版本有问题。

强制在编译前指定Java环境

有时候Android的编译脚本会读取系统默认的Java路径,但可能和你配置的不一致。试试在编译前手动设置环境变量:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
make clean && make -j$(nproc)

这样能确保编译过程全程使用你指定的Java 7版本。

检查系统默认Java版本

系统里可能安装了多个Java版本,update-alternatives工具可以帮你切换默认版本:

  • 执行update-alternatives --config javac,会列出所有可用的javac版本,选择对应1.7.0_161的编号
  • 同样执行update-alternatives --config java,把默认java也改成1.7版本

确认OpenJDK 7安装完整

有些精简版的OpenJDK可能缺少Android编译需要的组件,安装完整的开发包试试:

sudo apt-get update
sudo apt-get install openjdk-7-jdk openjdk-7-jre openjdk-7-source

安装完成后再重新验证版本,然后清理缓存重新编译。

彻底清理编译缓存

之前的失败可能留下了错误的中间文件,导致重复报错。执行以下命令彻底清理:

make clobber

然后再重新执行编译命令,从头开始构建。

这些步骤应该能解决你碰到的invalid source release问题,毕竟Android Marshmallow对Java版本的要求很严格,必须是Java 7,只要确保编译过程中全程使用正确的版本,问题就能解决。

内容的提问来源于stack exchange,提问作者Gil Akrish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:55:53