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

React Native Square Reader SDK打包verifyReleaseResources任务失败求助

问题分析与解决方法

问题原因

android:attr/lStar 是Android API 31(Android 12)引入的资源属性,构建失败的核心原因:

  • 主项目的compileSdkVersion低于31,无法识别该属性
  • react-native-square-reader-sdk模块依赖的Android编译版本与主项目不一致,导致资源合并时出现缺失

另外,npx react-native run-android --mode=release能正常运行,是因为该命令可能复用了debug构建缓存,或跳过了部分严格的资源校验环节;而./gradlew assembleRelease是完整的Release打包流程,会强制执行所有资源校验规则。

解决步骤

1. 统一Android编译版本配置

打开项目根目录的android/build.gradle,确保compileSdkVersion和targetSdkVersion设置为31或更高(建议和你当前的构建工具版本33.0.0对齐):

buildscript {
    ext {
        compileSdkVersion = 33
        targetSdkVersion = 33
        minSdkVersion = 21 // 根据项目需求调整
        // 其他配置保持不变
    }
    // ...
}

同时检查android/app/build.gradle中的对应版本,确保与根目录配置一致。

2. 强制依赖模块对齐编译版本

如果修改根配置后仍报错,在android/build.gradle的allprojects块中添加规则,强制所有依赖模块使用主项目的编译版本:

allprojects {
    repositories {
        // 你的仓库配置(比如mavenCentral、google()等)
    }
    configurations.all {
        resolutionStrategy {
            // 强制AppCompat库版本与compileSdkVersion匹配
            force 'androidx.appcompat:appcompat:1.6.1'
            // 针对Square Reader SDK做版本对齐
            eachDependency { details ->
                if (details.requested.group == 'com.squareup.sdk.reader') {
                    details.useVersion '1.4.3'
                }
            }
        }
    }
}

3. 清理构建缓存并重新打包

执行以下命令清理旧缓存,避免残留的不兼容资源影响构建:

./gradlew clean
rm -rf node_modules && npm install
./gradlew assembleRelease

4. 验证SDK版本兼容性

确认react-native-square-reader-sdk@1.4.3与react-native@0.72.3的兼容性,若存在版本不匹配问题,可尝试升级Square Reader SDK到官方标注兼容React Native 0.72.x的版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:37:04