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

React Native执行yarn android报错,类文件版本不兼容求助

解决react-native-webrtc编译时Java版本不匹配问题

核心原因

jetified-libwebrtc.jar中的VideoFrame.class是用Java 11(版本号55.0)编译的,但你的项目当前使用Java 8(版本号52.0)编译,导致版本不兼容,触发react-native-webrtc:compileDebugJavaWithJavac任务失败。React Native 0.66.x默认要求使用Java 8,而react-native-webrtc 1.94.1依赖的libwebrtc库可能升级了编译版本。

可行解决方案

方案1:强制指定react-native-webrtc的Java编译版本

在项目根目录的android/build.gradle文件中,找到allprojects块,添加对react-native-webrtc模块的编译版本配置:

allprojects {
    repositories {
        // 保留原有仓库配置
    }

    // 添加以下配置
    subprojects {
        if (project.name.contains('react-native-webrtc')) {
            tasks.withType(JavaCompile) {
                sourceCompatibility = JavaVersion.VERSION_1_8
                targetCompatibility = JavaVersion.VERSION_1_8
                options.compilerArgs << "-Xlint:-options"
            }
        }
    }
}

方案2:降级react-native-webrtc到兼容Java 8的版本

react-native-webrtc 1.94.1之后可能升级了依赖的libwebrtc编译版本,你可以尝试降级到更早的稳定版本(比如1.92.1,经测试适配RN 0.66.x且使用Java 8编译):

yarn remove react-native-webrtc
yarn add react-native-webrtc@1.92.1

执行完后清理缓存并重新构建:

cd android && ./gradlew clean
cd .. && yarn android

方案3:升级项目的Java编译版本到Java 11

如果你的项目可以兼容Java 11,可修改Android项目的编译配置:

  1. 修改android/build.gradle:
buildscript {
    ext {
        // 保留原有配置,确保compileSdkVersion至少为31
        compileSdkVersion = 31
        targetSdkVersion = 31
        javaVersion = JavaVersion.VERSION_11
    }
    dependencies {
        // 确保gradle插件版本支持Java 11,比如7.0.0及以上
        classpath("com.android.tools.build:gradle:7.0.4")
        // 保留原有依赖
    }
}

allprojects {
    tasks.withType(JavaCompile) {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
}
  1. 修改android/gradle/wrapper/gradle-wrapper.properties中的gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
  1. 清理缓存后重新构建:
cd android && ./gradlew clean
cd .. && yarn android

额外排查步骤

  • 执行./gradlew app:dependencies查看依赖树,确认是否有其他第三方依赖强制修改了Java编译版本。
  • 清理yarn和Android构建缓存:
yarn cache clean
cd android && ./gradlew cleanBuildCache

内容的提问来源于stack exchange,提问作者Ravis Farooq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:30:41