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

React Native 0.73升级后Android版本代码逻辑失效如何修复?

React Native 0.73.X升级后恢复ABI版本代码逻辑的解决方法

问题背景

升级React Native到0.73.X版本后,移除了android/app/build.gradle中处理ABI版本代码的逻辑,导致生成的安装包版本代码未按原逻辑(默认版本代码×1000 + ABI对应编码)计算,版本号过低无法发布到Google Play。恢复原有代码时触发错误:

groovy.lang.MissingPropertyException: Could not get unknown property 'abi' for object of type com.android.build.gradle.internal.api.ApplicationVariantImpl

解决方法

React Native 0.73.X对应的Android Gradle Plugin(AGP)版本已升级,旧版API已不兼容,需调整代码适配新AGP规范:

  1. 确保开启ABI拆分配置(若未开启)
    在android/app/build.gradle的android块中添加ABI拆分配置:

    splits {
        abi {
            enable true
            reset()
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
            universalApk true
        }
    }
    
  2. 替换为兼容AGP 8.X的版本代码逻辑
    将原有的版本代码处理逻辑替换为以下代码,同样放在android块内:

    applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def versionCodes = [
                "armeabi-v7a": 1,
                "x86": 2,
                "arm64-v8a": 3,
                "x86_64": 4
            ]
            def abi = output.getFilter(com.android.build.OutputFile.ABI)
            if (abi != null && versionCodes.containsKey(abi)) {
                output.versionCodeOverride = defaultConfig.versionCode * 1000 + versionCodes[abi]
            }
        }
    }
    

关键改动说明

  • 用variant.outputs.all替代旧版的variant.outputs.each,适配AGP 8.X的API规范
  • 显式指定com.android.build.OutputFile.ABI的完整路径,避免找不到类的问题
  • 添加versionCodes.containsKey(abi)判断,防止因ABI映射不存在导致的异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 04:22:20