构建React Native原生包时本地AAR依赖构建报错求助
错误核心原因
Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR.
Android Gradle插件(AGP)禁止直接将本地.aar作为依赖构建AAR产物——本地.aar的类、资源不会被打包进最终生成的AAR,导致产物损坏。旧版AGP虽不报错,但生成的AAR同样无效。你当前的dependencies配置重复引用本地.aar,只会加剧问题,不会解决本质冲突。
方案一:将本地.aar发布到本地Maven仓库后引用
清理无效依赖配置
先删除dependencies中所有和本地sdk.aar相关的重复引用,仅保留其他必要依赖:dependencies { // 保留RN核心依赖等其他配置,删除所有fileTree、files方式的本地aar引用 }创建本地Maven发布配置
在React Native原生模块的android目录下新建maven-local.gradle文件,自行修改groupId、artifactId和版本号:apply plugin: 'maven-publish' publishing { publications { aar(MavenPublication) { groupId 'com.yourteam.sdk' artifactId 'innity-core' version '1.0.0' artifact file('libs/sdk.aar') } } repositories { mavenLocal() } }发布到本地Maven
在模块的build.gradle顶部引入配置文件:apply from: './maven-local.gradle'执行Gradle命令完成发布:
./gradlew publishToMavenLocal通过Maven坐标引用
在模块的dependencies中添加:implementation 'com.yourteam.sdk:innity-core:1.0.0'
方案二:将本地.aar转为Android Library模块依赖
创建Library模块
在android目录下新建子目录(例如innity-sdk),将sdk.aar放入该目录的libs文件夹。配置模块build.gradle
在innity-sdk目录下创建build.gradle,匹配你的项目compileSdk、minSdk版本:plugins { id 'com.android.library' } android { namespace 'com.yourteam.innitysdk' compileSdk 33 defaultConfig { minSdk 21 } } dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) }注册模块到项目
在项目根目录的settings.gradle中添加:include ':innity-sdk' project(':innity-sdk').projectDir = new File(rootProject.projectDir, './innity-sdk')引用模块依赖
在React Native原生模块的dependencies中添加:implementation project(':innity-sdk')
内容的提问来源于stack exchange,提问作者lol69

