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

配置Expo项目报错:无法获取SoftwareComponent容器的'release'属性

解决React Native Expo项目执行./gradlew clean时的release属性错误

问题现象

执行./gradlew clean时触发错误:

配置项目':expo'时发生问题,无法获取org.gradle.api.internal.component.DefaultSoftwareComponentContainer类型SoftwareComponent容器的未知属性'release'。

环境信息:

  • React Native Expo项目
  • 尝试过Java 11/17/20/22版本
  • Gradle版本8.3

用户项目中build.gradle的签名与构建类型配置如下:

signingConfigs {
        release {
            if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
                storeFile file(MYAPP_UPLOAD_STORE_FILE)
                storePassword MYAPP_UPLOAD_STORE_PASSWORD
                keyAlias MYAPP_UPLOAD_KEY_ALIAS
                keyPassword MYAPP_UPLOAD_KEY_PASSWORD
            }
        }
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            // Caution! In production, you need to generate your own keystore file.
            signingConfig signingConfigs.release
            shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }

问题原因

该错误并非来自用户提供的配置代码,而是expo模块自身的build.gradle中存在过时的Gradle API调用:Gradle 7.x及以上版本对SoftwareComponentContainer的访问方式做了变更,旧代码中直接通过components.release访问组件的写法已被废弃,导致无法识别release属性。

解决方案

  1. 修复expo模块的Gradle配置
    找到项目中node_modules/expo/android/build.gradle文件,搜索是否存在类似components.release的代码,将其替换为components.findByName("release")。

  2. 升级expo依赖版本
    若不想手动修改依赖包代码,直接将项目中的expo依赖升级到最新稳定版,新版本通常已适配Gradle 8.x的API规范。

  3. 刷新依赖缓存
    修改配置或升级依赖后,执行./gradlew clean --refresh-dependencies命令刷新Gradle依赖缓存,再重新执行清理或构建操作。

  4. 检查全局Gradle配置
    确认项目根目录的gradle.properties文件中没有强制启用旧Gradle组件模型的配置,确保org.gradle.java.home指向正确的Java版本,无冲突配置项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:15:57