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

AppCenter构建React Native 0.73.5项目时无法解析react-native-gradle-plugin

React Native 0.73.5 AppCenter构建失败:无法解析react-native-gradle-plugin及Java版本兼容问题

核心解决方案

1. 明确指定react-native-gradle-plugin版本

RN 0.73.5对应的gradle插件版本与RN版本完全一致,直接在项目级build.gradle的classpath中指定版本,避免环境自动拉取不匹配的版本:

修改项目级build.gradle的dependencies块:

dependencies {
    classpath("com.android.tools.build:gradle:7.3.1")
    // 指定与RN版本一致的插件版本
    classpath("com.facebook.react:react-native-gradle-plugin:0.73.5")
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0")
}

2. 强制构建环境使用Java 11

RN 0.73+的gradle插件要求Java 11,需在gradle配置中明确指定版本,同时同步AppCenter构建环境:

项目级build.gradle添加全局配置

在buildscript块外添加:

allprojects {
    repositories {
        google()
        mavenCentral()
    }

    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = "11"
        }
    }
}

app级build.gradle添加编译选项

在android块内补充:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}

kotlinOptions {
    jvmTarget = "11"
}

同时完善react块配置(按需启用Hermes):

react {
    hermesEnabled = true // 可根据需求设置为false
}

3. AppCenter构建环境适配

在AppCenter的Android构建配置中,将Java版本设置为11。如果无可视化配置项,可在项目根目录创建appcenter-post-clone.sh脚本:

#!/usr/bin/env bash
export JAVA_HOME=$ANDROID_HOME/openjdk11
export PATH=$JAVA_HOME/bin:$PATH

修改后的完整配置文件

项目级build.gradle

buildscript {
ext {
    buildToolsVersion = "34.0.0"
    minSdkVersion = 21
    compileSdkVersion = 34
    targetSdkVersion = 34
    ndkVersion = "25.1.8937393"
    kotlinVersion = "1.8.0"
}
repositories {
    google()
    mavenCentral()
}
 dependencies {
    classpath("com.android.tools.build:gradle:7.3.1")
    classpath("com.facebook.react:react-native-gradle-plugin:0.73.5")
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0")
 }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }

    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = "11"
        }
    }
}

apply plugin: "com.facebook.react.rootproject"

app级build.gradle

apply plugin: "com.android.application"
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"

react {
    hermesEnabled = true // 根据需求调整
}

def enableProguardInReleaseBuilds = false

def jscFlavor = 'org.webkit:android-jsc:+'

android {
    ndkVersion rootProject.ext.ndkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
    compileSdkVersion rootProject.ext.compileSdkVersion

    namespace "com.spimarch2024"
    defaultConfig {
        applicationId "com.spimarch2024"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }

    kotlinOptions {
        jvmTarget = "11"
    }

    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            signingConfig signingConfigs.debug
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
}

dependencies {
    implementation("com.facebook.react:react-android")
    implementation("com.facebook.react:flipper-integration")

    if (hermesEnabled.toBoolean()) {
        implementation("com.facebook.react:hermes-android")
    } else {
        implementation jscFlavor
    }
}

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

问题原因说明

  • 未指定插件版本:RN 0.73+依赖本地插件的同时,classpath需明确对应版本,否则AppCenter环境无法正确解析插件
  • Java版本不兼容:RN 0.73+的gradle插件基于Java 11开发,AppCenter默认Java 8环境会导致版本冲突
  • 编译选项未同步:未在gradle配置中明确Java版本时,AppCenter会使用默认版本构建,与本地环境不一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:47:37