React Native安卓打包报错AAPT: resource android:attr/lStar not found
错误原因
android:attr/lStar是Android 12(API等级31)才新增的系统属性,你当前项目配置的compileSdkVersion为29,低于31,无法识别该属性。触发该问题的直接原因是构建过程中自动拉取了androidx.core:core-1.7.0-alpha02依赖,该版本依赖API31的属性资源。
另外从日志可以看到存在@react-native-firebase各依赖包版本不兼容的问题:@react-native-firebase/app版本为8.4.6,但analytics、dynamic-links、messaging等子包依赖更高版本的app包,版本不匹配也会导致异常拉取高版本的系统依赖。
解决方案
- 方案1:强制锁定core依赖版本(无需升级SDK,快速修复)
在项目根目录的android/build.gradle文件中,找到allprojects代码块,添加强制版本锁定配置:
allprojects { configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' force 'androidx.core:core:1.6.0' } } }
- 方案2:升级编译SDK版本(彻底解决)
修改android/app/build.gradle中的配置:
android { compileSdkVersion 31 buildToolsVersion "31.0.0" defaultConfig { targetSdkVersion 31 // 其余配置保持不变 } }
- 方案3:统一firebase依赖版本
将所有@react-native-firebase相关的包升级到互相兼容的版本,确保所有子包依赖的@react-native-firebase/app版本和实际安装的app包版本一致,消除日志中的版本警告。
验证操作
完成上述配置后,先删除项目下android/.gradle缓存文件夹,再执行./gradlew clean命令,之后重新构建项目即可。
内容的提问来源于stack exchange,提问作者Erbaz Kamran
相关产品推荐
相关产品推荐

