原生Android应用接入flutter(详细步骤)
原生Android应用接入flutter是混合开发的一种常用方式,但是其中会涉及flutter和一些android配置,还是很容易踩坑的,花了很长时间终于成功了,记录下来
步骤一:构建项目
Android项目接入flutter需要Android原生目录和flutter module目录,注意将他们放在同一个文件夹下面
flutter_hybrid
- flutter_module (flutter module目录文件)
- MyApp(原生android)
flutter_module可以使用命令创建
flutter create -t module flutter_module
原生android项目可以使用Android Studio创建
具体步骤
File>new Project>EmptyActivity>finished>创建成功
步骤二:基础准备
有了flutter moduel和android项目还不着急接入,需要先进行一些基础的准备才能够顺利接入
首先
Flutter 库打包成由 AAR 和 POM artifacts 组成的本地 Maven 存储库,在flutter module文件夹下使用命令
flutter build aar
成功信息,这里需要注意:按照成功信息进行集成操作
按照图片中的内容操作就行,这里提几个进行集成操作的注意(细节)点
- 集成信息中的repostories的配置信息现在已经不在build.gradle中进行配置了,需要转移到settints.gradle中配置,否则会报错
- 其余信息在build.gradle(app)中配置,但是默认并不提供profileImplementation,所以需要在buildTypes添加profile类型,推荐先添加类型,最后Sync now
步骤三:接入
到了这一步就快成功了
Flutter 提供了 FlutterActivity,用于在 Android 应用内部展示一个 Flutter 的交互界面。和其他的 Activity 一样,FlutterActivity 必须在项目的 AndroidManifest.xml 文件中注册。
<activityandroid:name="io.flutter.embedding.android.FlutterActivity"android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"android:hardwareAccelerated="true"android:windowSoftInputMode="adjustResize"/>
在MainActivity中导入flutterActivity,后面会自己加载里面的flutterActivity
import io.flutter.embedding.android.FlutterActivity;
在Android原生项目中添加一个button按钮,作用是打开flutter模块
它的点击事件
public void sendMessage(View view) {// Do something in response to buttonstartActivity(FlutterActivity.withNewEngine().initialRoute("/defaultRouteName").build(getApplicationContext()));}
这里的路由是在flutter模块中配置的,这里将代码贴出来
void main() => runApp(_widgetForRoute('defaultRouteName'));Widget _widgetForRoute(String route) {switch (route) {default:return MaterialApp(home: Scaffold(backgroundColor: Colors.red,body: Center(child: Text('Hello from flutter',textDirection: TextDirection.ltr,style: TextStyle(fontSize: 20.0, color: Colors.blue),),)),);}
}
步骤四:测试
点击button,成功
原生Android应用接入flutter(详细步骤)相关推荐
- Android连接夜神模拟器详细步骤
Android连接夜神模拟器详细步骤 做毕设用到了android stdio,好久不用也生疏了,记录一下. (1)打开并运行夜神模拟器, (2)打开命令行窗口,win+R,并输入cmd. (3)找到并 ...
- android APP集成系统详细步骤及注意事项(amlogic平台)
此说明用于amlogic平台集成不签名的apk.(如何判断集成的apk需不需要签名.简单来说使用U盘安装后,能正常打开使用的就可以不签名方式集成.) 各平台的文件系统有差异,但整体大同小异.其他平台的 ...
- Android Studio安装超详细步骤(包括SDK安装不成功,模拟器无法创建等问题)
本文主要介绍CPU为AMD锐龙和英特尔两种类型在安装中出现的一些问题,两种解决的方案不同,所以首先查看属于哪种,然后找相对应的安装方法. Android Studio的安装需要准备两个安装文件,一个是 ...
- Android MediaRecorder录制视频详细步骤
使用MediaRecorder能够编写从设备麦克风与相机捕获音视频,保存音频并(使用MediaPlayer)进行播放的应用. 1.添加权限: <uses-permission android:n ...
- Android MediaPlayer播放视频详细步骤
MediaPlayer类是媒体框架最重要的组成部分之一,此类的对象能够获取,解码以及播放音频和视频,而且只需极少量设置,它支持多种不同的媒体源,例如: 本地资源 内部Url,例如您可能从内容解析器获取 ...
- 中国35岁以上的程序猿哪去了?,基于android的app开发详细步骤
举几个例子: A,女,前同事,90左右,985硕士,15年毕业,二线互联网公司,干了4年,19年,29岁跑路,高校行政岗事业编,月薪从25K到6K,5:30下班. B.男,读者,85左右,985硕士, ...
- Android SoundPool播放音效详细步骤
MediaPlayer虽然也能播放音频,但是它有资源占用量较高,延迟时间较长,不支持多个音频同时播放等缺点,这些缺点决定MediaPlayer在某些场合的使用情况不会很理想,例如在对时间精准度要求相对 ...
- mac 下 Android apk反编译详细步骤
mac环境下工具清单: 1.Apktool :将apk文件进行反编译,得到字节码(classes.dex)和资源文件及其他H5文件等. 2.dex2jar:将反编译后的classes.dex文件转化为 ...
- 原生App项目集成flutter混合开发详细指南
记得去年9月份的时候谷歌在上海有一次开发者大会,去参加的时候关注到了flutter,随后没过多久就发布了1.0版本.18年底的时候用flutter做了个小项目,发现flutter确实挺好用的.于是尝试 ...
- android application 方法,Android Studio新建Android application配置的详细方法
Android Studio如何新建Android application配置呢?下面是小编介绍的Android Studio新建Android application配置的详细方法,有需要的小伙伴一 ...
最新文章
- JavaScript面向对象编程之Singleton类
- php 怎么将a 转成65,详细阐述PHP环境下如何将gbk编码转成utf8格式
- Object Detection中的IOU
- Screen会话命令 Linux
- 比特币全节点(bitcoind) eth 全节点
- 谷歌浏览器 检查功能_谷歌Chrome浏览器添加新功能,爱”吃“内存有应对之策?...
- AFNetworking请求提示Invalid parameter not satisfying: URLString
- DXUT实战3:HLSL(withEffect)+D3D9+DXUT(june_2010) . .
- 如何打开chrome中flash debug player
- 浮点数计算机组成原理问题,计算机组成原理习题及答案
- 计算机主板提示ahci,电脑BIOS没有AHCI功能没有办法BIOS刷新怎么办
- 解决打开Excel会自动新建一个空表格
- 用python解决数学问题
- 微信公众号查券返利机器人搭建教程
- 以太网口差分电平_逻辑电平之常见差分逻辑电平(4)
- 王爽汇编语言第三版答案
- 电脑端手机模拟器软件
- localhost与ip的区别
- 计算机网络一课一文1000字,第一课 计算机网络及应用
- 关于使用多普达windows mobile 手机使用联通卡不能上网的问题
热门文章
- 诺基亚7plus支持html,【诺基亚7Plus评测】诺基亚7Plus评测:三蔡司镜头“全面”来袭(全文)_诺基亚 7 Plus(4GB RAM/全网通)_手机评测-中关村在线...
- ANSI/ISO C++ Professional Programmer's Handbook 7
- 浅谈打开网页速度慢的原因和解决方法
- 《孙子兵法特殊战法之火攻篇》
- 演出节目名字_《我们的歌》新人太一无人识?看了节目才知道原来他这么优秀...
- 2012年那些大败局
- 总结:Python 轻量级序列化和反序列化包 marshmallow 详细使用指南
- 【读书笔记】《谈谈方法》(笛卡尔)
- ionic刷新html页面,Ionic实现页面下拉刷新(ion-refresher)功能代码
- 笔记 |《软件测试技术经典教程》第4章 黑盒测试技术