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

React Native生成签名APK时JDK编译react-native-firebase_messaging报错

错误原因

该错误由JDK版本不兼容导致:当前构建使用的JDK 8无法识别JDK 9及以上版本编译的类文件中携带的MODULE属性,项目引入的新版本react-native-firebase_messaging依赖的部分组件为高版本JDK编译,因此触发编译断言错误。

解决方案
  • 方案一(推荐):升级JDK版本
    更换项目使用的JDK为11或17版本,这也是当前React Native官方推荐的JDK版本:
    1. 本地下载安装JDK 11/17后,配置JAVA_HOME环境变量指向对应版本的安装路径
    2. 若使用Android Studio构建,可直接在「Settings > Build, Execution, Deployment > Build Tools > Gradle」中,将Gradle JDK选择为11或17版本
    3. 修改项目android/build.gradle配置,统一编译版本:
    android {
      // ...其他配置
      compileOptions {
          sourceCompatibility JavaVersion.VERSION_11
          targetCompatibility JavaVersion.VERSION_11
      }
      kotlinOptions {
          jvmTarget = "11"
      }
    }
    
  • 方案二:降级依赖版本
    若暂时无法升级JDK,可将react-native-firebase_messaging降级到兼容JDK 8的18.x及更早版本,修改依赖版本后重新安装依赖即可。
  • 清理缓存重新构建
    执行以下命令清理历史构建缓存,避免旧缓存影响:
    cd android
    ./gradlew clean
    cd ..
    rm -rf node_modules && npm install
    
原始构建报错信息
> Task :react-native-firebase_messaging:compileReleaseJavaWithJavac FAILED
An exception has occurred in the compiler (1.8.0_291). Please file a bug against the Java compiler via the Java bug reporting page after checking the Bug Database for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE (class com.sun.tools.javac.util.UnsharedNameTable$NameImpl)
依赖包版本截图

依赖包版本截图

内容的提问来源于stack exchange,提问作者Amir Doreh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:24:03