flutter打包aar

                                        Flutter项目打成AAR供Android原生使用步骤


一、打成本地AAR步骤详解

1、用Android Studio工具打开已有或者新建 Flutter项目,


如上图所示,带x的是未安装的环境,根据提示安装即可,这里特别强调一点,如果已经配置了Flutter插件,还提示插件未安装,输入

 ln -s ~/Library/Application\ Support/Google/AndroidStudiox.x/plugins ~/Library/Application\ Support/AndroidStudiox.x命令回车,命令成功之后再次执行,flutter doctor检测环境是否正常,其中x.x代表的Android Studio版本

2、打开flutter项目中 android 选项里面app里面的 build.gradle文件

复制如下代码到该文件指定的位置当中,

其中applicationId 是你自己项目配置的

  embed "io.flutter:flutter_embedding_release:1.0.0-xxx",中xxx的版本需要自己电脑中搜索,搜索engine.version这个文件,文本编辑打开复制粘贴即可。

def isLib=true

if(isLib){  

  apply plugin: 'com.android.library'

           }else {    

apply plugin: 'com.android.application'

                 }

删除原有的

  apply plugin: 'com.android.application'

defaultConfig目录下面粘贴下面代码

if(!isLib){       

     applicationId "xxxxxx"

}

if(isLib){  

  ndk{        abiFilters 'armeabi','armeabi-v7','x86'    }

}

if (isLib) {    

apply plugin: 'com.kezong.fat-aar'

}

复制下面的代码到最下面

dependencies {

//    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"   

 //新增:将libflutter.so  和 flutter_embedding.jar ,同时和第三方插件打包到aar中    

if (isLib) { 

// 添加 flutter_embedding.jar release 注释

  embed "io.flutter:flutter_embedding_release:1.0.0-xxx"        

// 添加各个 cpu 版本 flutter.so 注释

//embed "io.flutter:x86_64_debug:1.0.0-c8e3b9485386425213e2973126d6f57e7ed83c54"

// embed "io.flutter:x86_debug:1.0.0-c8e3b9485386425213e2973126d6f57e7ed83c54"        

embed "io.flutter:arm64_v8a_release:1.0.0-xxx"        

embed "io.flutter:armeabi_v7a_release:1.0.0-xxx"        

//添加fat-aar处理flutter打包成aar中三方依赖        

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()        

def plugins = new Properties()        

def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')       

 if (pluginsFile.exists()) {       

     pluginsFile.withReader('UTF-8')

reader -> plugins.load(reader) 

                                                       }        

                                    }       

 plugins.each { name, _ ->           

 embed project(path: ":$name", configuration: 'default')       

                      }  

           }

  }

3、打开android 下面 build.gradle文件,修改配置如下,

classpath "com.kezong:fat-aar:1.2.15"

maven { url "http://download.flutter.io" }

maven { url 'https://maven.aliyun.com/repository/google' }

maven { url 'https://maven.aliyun.com/repository/jcenter' }

maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }

 

4、打开如图所示AndroidManifest.xml文件

删掉application的配置项,删掉主入口页面的配置项

5、打开Terminal窗口,cd到android目录下,如果不会请自行百度,

懒人方法(mac):控制板左边长按,拖动到terminal中即可

输入命令flutter pub get,命令执行完如上图所示,再执行下面打包命令

 ./gradlew assembleRelease

Windows 命令 去掉 ./即可,打包成功之后如下图所示

6、打包成功之后,在build目录下面app目录下面outputs下面aar下面找到xxx-release.aar扔给安卓工程师使用即可


注意:flutter项目中所有引用的classpath "com.android.tools.build:gradle:4.1.1"

compileSdkVersion 28buildToolsVersion "28.0.3"

minSdkVersion 16targetSdkVersion 28

需要一致

如若上述打包发生未知错误,备用方式,把flutter项目下android包作为一个安卓原生项目打开,点击下图操作进行手动打包,生成的aar文件在同上面的方式当中


二、Man远程包

plugins {

    id 'maven'

}

 

//上传maven服务

uploadArchives {

    configuration = configurations.archives

    repositories {

        mavenDeployer {

            repository(url: “需要上传的库的地址”) {

                authentication(userName: 'xxx', password: xxx)

            }

            pom.project {

                //版本名称

                version '1.1.1'

                //aar文件名称

                artifactId 'libandroid'

       //aar文件所在maven包路径

groupId 'com.beijiait.android_lib'

                packaging 'aar'

                //更新描述

//                description 'update version 1.1.0 add new method'

                         }

        }

    }

}

重复上面第二步配置,然后输入 ./gradlew uploadArchives进行上传

三、引用所上传的maven包

project标签下面的gradle  allprojects里面添加

maven {    url 'maven私服路径'}

 app下面的 gradle     dependencies里面添存储路径

implementation 'com.xxx:libandroid:1.1.1@aar'

其中@不能省略(需要额外配置才可以省略)

android标签里面添加如下代码

repositories {    

            flatDir {        dirs 'libs'    }

                }

点击Sync Now 等待编译完成


 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • Flutter Module 打包aar Flutter 版本1.17.1 Google 方式打包aar flut...
    _____彬阅读 4,090评论 8 11
  • 附上原文作者连接:作者:金诚 一.榜单介绍 排行榜包括四大类: 单一框架:仅提供路由、网络层、UI层、通信层或其他...
    这个美嘉不姓陈阅读 2,249评论 1 35
  • 一.榜单介绍 排行榜包括四大类: 单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架 混合开发框架:...
    伟子男阅读 5,239评论 0 161
  • 程序员界有个神奇的网站,那就是github,这个网站集合了一大批优秀的开源框架,极大地节省了开发者开发的时间,在这...
    小林_a179阅读 2,043评论 0 16
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 5,700评论 0 5