Flutter Plugin引用安卓aar包

原文:https://www.kikt.top/posts/flutter/plugin/flutter-sdk-import-aar/

安卓插件直接引用aar,flutter编译时可能会报这个错:

Direct local .aar file dependencies are not supported when building an AAR.

解决方法是用maven把aar打包成本地仓库

首先安装maven,mac电脑用brew即可

brew install maven

在flutter插件项目中的android根目录创建一个libs文件夹,把需要打包的aar文件放进libs目录,然后命令行进到libs目录下执行命令:

 mvn deploy:deploy-file -Dfile=WbCloudNormal-v4.0.14-b005c6b.aar -Durl="file://." -DgroupId="com.wbcloud" -DartifactId="normal" -Dversion="4.0.14"

-Dfile= 后面是你的aar文件名
-DgroupId= 后面是组名
-DartifactId= 后面是sdk名称
-Dversion= 后面是版本号

命令执行后,本地仓库已生成


image.png

我这里有两个aar,一个normal一个ocrsdk

本地仓库生成成功后就可以把之前拖进来的aar文件删除了

配置安卓项目的build.gradle文件:
定义一个找到包路径的方法:

def getCurrentProjectDir() {
    String result = ""
    rootProject.allprojects { project ->
        if (project.properties.get("identityPath").toString() == ":tencent_ocr_plugin") {
            result = project.properties.get("projectDir").toString()
        }
    }
    return result
}

“tencent_ocr_plugin”修改为你的flutter plugin项目名

在rootProject.allprojects中配置maven包路径

rootProject.allprojects {
    def dir = getCurrentProjectDir()
    repositories {
        google()
        jcenter()
        maven {
            url "$dir/libs"
        }
    }
}

然后在dependencies中就可以导入想要的aar了

dependencies {
    implementation "com.wbcloud:normal:4.0.14"
    implementation "com.wbcloud:ocrsdk:2.4.5"
}

2022.3.10:
最近发现了另一种方法,在插件包的build.gradle里加入flatDir路径,project里是插件包的项目名,记得带上:号,file里是aar文件所在目录的文件夹名

rootProject.allprojects {
    repositories {
        google()
        jcenter()
        flatDir {
            dirs project(":flutter_unionpay").file("libs")
        }
    }
}

引用:

implementation(name: "myaar", ext: "aar")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容