构建AAR时不支持直接本地.aar依赖,Android Release构建失败
Debug正常但Release构建失败的解决办法
错误根源
构建Release版本时,:ct-react-native-datatrans模块直接引用了本地AAR文件(路径:/Users/sohan/lab/mapl/mapl-app-datatarans/node_modules/ct-react-native-datatrans/android/libs/android-sdk-1.5.1.aar)。Android Gradle Plugin明确禁止这种操作——因为构建AAR时,本地AAR里的类和资源不会被打包进最终产物,导致生成的AAR损坏,旧版AGP虽然不报错但问题一样存在。
可行解决方案
方案1:把本地AAR转为本地Maven仓库依赖
- 在
ct-react-native-datatrans/android目录下新建maven-local文件夹,把android-sdk-1.5.1.aar放进去。 - 修改该模块的
build.gradle(或build.gradle.kts),添加本地Maven仓库:
repositories { maven { url = uri("./maven-local") } // 保留原有仓库,比如google()、mavenCentral() }
- 在
maven-local目录里手动创建android-sdk-1.5.1.pom文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.datatrans</groupId> <artifactId>android-sdk</artifactId> <version>1.5.1</version> <packaging>aar</packaging> </project>
- 替换原有依赖,把本地文件依赖改成Maven坐标:
dependencies { // 替换原来的 implementation files('libs/android-sdk-1.5.1.aar') implementation 'com.datatrans:android-sdk:1.5.1' }
方案2:解压本地AAR合并到模块中
- 解压
android-sdk-1.5.1.aar,得到classes.jar、res文件夹、AndroidManifest.xml等内容。 - 把
classes.jar复制到模块的libs目录,添加依赖:
dependencies { implementation files('libs/classes.jar') }
- 将
res文件夹里的资源合并到模块的res目录(遇到资源冲突时,重命名冲突文件)。 - 把
AndroidManifest.xml里的组件(比如Activity、Service)合并到模块的AndroidManifest.xml中。
方案3:临时跳过检查(不推荐)
如果只是临时应急,可以在模块的gradle.properties里添加:
android.disableLocalLintAarBundleCheck=true
注意:这个方法只是绕过报错,生成的AAR依然可能损坏,不建议长期使用。
内容的提问来源于stack exchange,提问作者SohanLal Saini
相关产品推荐
相关产品推荐

