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
相关产品推荐
相关产品推荐

