Flutter集成flutter_paytabs_sdk时遇本地.aar依赖构建错误
解决flutter_paytabs_sdk 1.0.1构建错误的方案
嘿,我刚碰到过类似的问题,这个错误的根源很明确——flutter_paytabs_sdk:1.0.1插件内部直接依赖了本地的.aar文件,而Android Gradle Plugin(AGP)在构建AAR时是不允许这种操作的,因为这样生成的AAR会缺失本地aar里的类和资源,完全没法用。给你几个靠谱的解决办法:
方法一:手动修改插件的Gradle配置(临时修复)
这个方法需要你修改pub缓存里的插件文件,步骤如下:
- 找到插件的Android目录:
C:\src\flutter.pub-cache\hosted\pub.dartlang.org\flutter_paytabs_sdk-1.0.1\android - 打开该目录下的
build.gradle文件 - 把原来直接依赖本地aar的代码(大概是
implementation files('paytabs_sdk-v4.0.1/paytabs_sdk-v4.0.1.aar'))替换成以下配置,把本地aar转为本地Maven仓库依赖:// 先添加本地Maven仓库指向aar所在目录 repositories { maven { url uri('./paytabs_sdk-v4.0.1') } } // 然后通过Maven坐标依赖该aar(注意groupId、artifactId、version要和下面pom.xml里的一致) implementation 'com.paytabs:paytabs-sdk:4.0.1' - 进入
paytabs_sdk-v4.0.1目录,创建一个pom.xml文件,内容如下(可以根据aar的实际信息微调):<?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.paytabs</groupId> <artifactId>paytabs-sdk</artifactId> <version>4.0.1</version> <packaging>aar</packaging> </project> - 保存所有修改后,重新运行
flutter run启动应用。
注意:这个修改是临时的,当你执行
flutter pub get重新拉取插件时,所有修改会被覆盖。如果插件官方一直没修复这个问题,你可以考虑把插件fork到自己的GitHub仓库,修复后在pubspec.yaml里引用自己的仓库地址。
方法二:升级插件到最新版本
优先推荐这个方法——去pub.dev看看flutter_paytabs_sdk有没有更新版本,新版本大概率已经修复了本地aar依赖的问题。你只需要在pubspec.yaml里把插件版本号改成最新的,然后执行flutter pub get更新即可。
方法三:降级Gradle版本(不推荐)
虽然当前你用的是Gradle 6.5,但早期版本的AGP不会抛出这个错误(虽然生成的AAR依然可能存在损坏问题)。如果你实在要坚持用这个插件版本,可以尝试把Gradle降级到5.x系列,但这可能会引发其他项目兼容性问题,所以只作为最后的备选方案。
内容的提问来源于stack exchange,提问作者Mena Samer
相关产品推荐
相关产品推荐

