Android项目集成Flutter

(原创)Flutter基础入门:手把手教你搭建Flutter混合项目:模块代码依赖方式集成 今天主要讲一下如何搭建一个Flutter的混合项目。 阅读详情

 

在Android开发中某些组件或者页面需要使用Flutter开发,这篇文章主要介绍已有的Android项目集成Flutter开发环境。

一、Flutter开发环境配置

1、flutter插件配置

Android Studio ——>Preferences——>搜索flutter插件——>install——>重启项目

2、下载flutter-sdk

https://flutterchina.club/

我使用的是Mac的系统,下载地址为:

https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_2.0.6-stable.zip

下载完成解压缩,放在合适的位置。

3、环境变量配置

open -e ~/.zshrc

文件中输入:

export FLUTTER_ROOT=/Users/xxx/Library/Flutter/flutter
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=$PATH:$FLUTTER_ROOT/bin

FLUTTER_ROOT:SDK路径,改成你自己设置的地址。

PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL根据:https://flutterchina.club/setup-macos/设置。

使环境变量生效:

source ~/.zshrc

4、flutter项目介绍

flutter项目分为以下几个,Android中集成Flutter需要新建Flutter Module。

  • Flutter Application: Flutter应用
  • Flutter Module :Flutter与原生混合开发
  • Flutter Plugin:Flutter插件
  • Flutter Package:纯Dart组件

二、Android项目中添加flutter

1、添加module

打开或者新建Android工程,选择New Module:

Project name:项目名称。

Flutter SDK path:上一步所下载的SDK放置的路径。

Project location:flutter_module所在的父级路径,这个路径需要和Android项目路径在同一等级,千万不能在Android项目内部的目录,否则会关联失败,没法编译。

之后会自动生成:

(1)AndroidFlutterDemo/settings.gradle

setBinding(new Binding([gradle: this]))
evaluate(new File(
  settingsDir,
  '../flutter_module/.android/include_flutter.groovy'
))

(2)AndroidFlutterDemo/app/build.gradle

implementation project(path: ':flutter')

如果没有则可以手动添加,注意:

  • include_flutter.groovy的路径必须是flutter_module里面的,否则会找不到。
  • implementation project(path: ':flutter')必须是固定的,不能更改为:implementation project(path: ':flutter_module')

2、添加清单文件

将FlutterActivity注册到Android项目的清单文件中,这一步需要手动操作。

<activity
    android:name="io.flutter.embedding.android.FlutterActivity"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:theme="@style/AppTheme"
    android:windowSoftInputMode="adjustResize" >
</activity>

3、跳转测试

MainActivity中:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn).setOnClickListener(view -> {
            Intent intent = FlutterActivity.createDefaultIntent(MainActivity.this);
            startActivity(intent);
        });
    }
}

这样就可以跳转到新的flutter页面了。

Demo地址:https://download.youkuaiyun.com/download/yoonerloop/18542251

 

 

 

 

Flutter 工程化搭建(Android端) ❝ 记录从单纯的测试或者技术小白如何一步步进阶成为一名合格的测试开发工程师 ❞ Tips文中如果有不当的地方欢迎大家指正 有同学对某些点感兴趣的或者有想了解某些领域相关知识的欢迎留言和投稿 以下为大家介绍在每一个阶段需要掌握的基础知识以及对应的实践文档 1 测试方法与理论 名称 相关知识点 1.1 软件开发生命周期 SCRUM/XP、持续集成/持续交付/DevOps 1.2 测试流程体系 传统测试流程、测试左移、测试右移 1.3 测试技术体系 分层测试体系 阅读详情

相关推荐

原生安卓项目中集成Flutter模块

第一步,在与项目文件夹的同级目录下,创建一个Flutter Module,使用命令行创建 flutter create -t module flutter_module 第二步,打开安卓项目的build.gradle,使用java8编译 android { ............. compileOptions { sourceCompatibility Java...

Eridike的博客 1221

Flutter(Android 混合开发)

前言 Flutter 支持作为 android Moudle 出现在项目中.这样就可以在 已有的项目中 使用. 虽然现在Flutter 比较受关注,但是和weex 一样 ,大部分都只是在观望 不是真正的进行使用.所以 如果用还是混合开发 原生+Flutter 方式比较合适(自我感觉). 写一个demo 进行Android及Flutter 交互.(IOS 方法基本一致). Flutter 调用 a...

李挺哲的移动专栏 1万+

Android 原生项目集成 Flutter

最终生成了以上文件,注意这里最后的命令。关于 flutter pub get 具体做了什么,可以参考后面的。

2401_89213278的博客 746

java.io.FileNotFoundException: ...my_flutter/.android/include_flutter.groovy

有了上面图文并茂的讲解加上一个实际的 Sample,相信不管 flutter module 放在哪里你到可以关联到了。上下图,然后大家考虑一下答案,再往下翻,相信聪明的你一定知道,改法有多种,下面提供一下几种方案。从上图可以看到,settings.gradle与flutter_module处在根目录同一级下。从报错可以看出,编译器没有找到正确的include_flutter.groovy所在的路径。无论是新建项目,还是老项目允许出现这个问题,先想办法让编译器找到这个文件。这样的问题,提示文件找不到。

Dream It Possible 2602

Flutter混合开发(一):Android项目集成Flutter模块详细指南

文章所有资料全部已经打包整理好,另外小编手头上整理了大量Android架构师全套学习资料,Android核心高级技术PDF文档+全套高级学习资料+视频+2021 BAT 大厂面试真题解析资料展示:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!文章所有资料全部已经打包整理好,另外小编手头上整理了大量Android架构师全套学习资料,Android核心高级技术PDF文档+全套高级学习资料+视频+2021 BAT 大厂面试真题解析。

2401_84132232的博客 1063

四、SVN客户端tortoiseSVN的基本功能介绍

档案浏览器(Repo-browser) 鼠标右键–>tortoiseSVN->版本库浏览器 输入版本库URL地址,进入如菜单界面 版本库浏览器支持SVN及http两种最常用的通信协议 SVN服务器访问方式 方法 模式 访问方法 File:// 直接版本库访问(本地磁盘) http:// 通过配置subversion的WEB服务器的WEBDAV协议 http...

也许是我送你哦 1011

快速实现Android项目内嵌Flutter页面(混合开发)

一、新建Android Project和Flutter Module 1、新建Android Project --AndroidEmbedProject 此处省略创建过程 2、新建Flutter Module --my_flutter_module(与Android Project位于同级目录) 创建完成后项目目录如图所示: ...

jiangpb003的博客 2494

4D 毫米波雷达:智驾普及的新路径(一)

总体而言,4D 毫米波雷达具有更佳的探测能力,更高的分辨率和精度,在人工智能技术的加持下,能够实现更加智能化的感知和跟踪,从而为自动驾驶、智能交通等领域提供更加可靠的数据支持。博世的第五代引入了俯仰维度,但其角度分辨率较差,且最大探测距离为。车载毫米波雷达的尺寸受限,我们认为通过算法的优化、天线内置等方式可以在保障性能的前提下,压缩尺寸,便于车企进行灵活的设计安装。在物理设计、天线性能设计、电连接、封装工艺和材料、散热处理、可靠性与自动化测试等方面进行持续优化,推出可大规模量产的高性能毫米波雷达解决方案。

奔袭的算法工程师 3954

现有安卓项目集成flutter

1、集成项目 首先 在Android的同级目录执行命令 执行以下命令 flutter create -t module flutter_modal 执行完成后会在Android的同一级目录下生成一个新的 flutter_modal文件夹 然后在Android里面做如下修改 app下面的buildgradle 的Android目录加入 //加入以下 compileOptions { sourceCompatibility 1.8 targetCompatibi

qq_32683045的博客 568

Ubuntu20.04复现instant-ngp,自建数据集,导出mesh

本次仅仅记录一下自己复现instant-ngp的过程,如果里面的参考有冒犯到原博主请联系我删除,本人也是nerf的小白一枚,可以一起交流学习神经辐射场,希望大家在复现instant-ngp的时候少走一些坑,情况允许下可以去复现一下npg-pl和nerfStudio,最后希望大家一起进步。看到一些博主说葵司的npg_pl也不错,而且葵司是台湾人,在youtube上也有讲解的视频。渲染的效果还是可以的,相对于源码来说还是有点模糊,我一些参数也没有设置,直接就拉进来进行渲染,速度是非常快的。

weixin_59961223的博客 9451

ArcMap新手必看:5分钟搞定面要素的四至信息提取(附字段重命名技巧)

本文为ArcMap新手提供了快速提取面要素四至信息的详细教程,包括数据准备、坐标系选择、批量处理技巧及字段重命名优化方案。通过实战步骤和Python脚本示例,帮助用户高效完成GIS数据处理任务,特别适合行政区划数据分析和报告生成。

weixin_29266007的博客 384

flutter混合开发爬坑:在已有的android项目集成FlutterFragment,flutter和安卓互调

集成flutter项目 1.受制于国内的防火墙,添加国内镜像,在android 根目录修改build.gradle buildscript { repositories { // google() // jcenter() jcenter { url "http://jcenter.bintray.com/" } jcenter { url 'http://maven.aliyun.com/nexus/content/rep...

lx6101989的博客 3255

Vivado报错-4 [Routed 35-3424] SLL Assignment failed ILP VU19P

Vivado报错[Routed 35-3424] SLL Assignment failed ILP VU19P

weixin_39896700的博客 1408

Flutter 11 Android原生项目集成Flutter Module

本文主要讲解如何在已有的Android原生老项目中集成Flutter模块。

sziitjin的博客 1801

使用Qt Creator自带的Qt Designer构造UI界面流程总结

在本文中,我们将总结使用Qt Creator自带的Qt Designer构造UI界面的流程。在对话框中,您可以选择一个控件的信号,然后将其连接到另一个控件的槽。例如,您可以将按钮的点击信号连接到一个槽函数,以响应按钮的点击事件。右键单击窗口设计器中的空白区域,选择适当的布局管理器,如水平布局、垂直布局或网格布局。在Qt Designer中,您可以使用各种预定义的UI控件来设计应用程序的界面。现在,您可以在应用程序的源代码中使用生成的UI界面。在您的源文件中,包含相应的头文件,然后创建一个UI界面的实例。

cl6789的博客 1393

华为OD新系统机试真题 - 端口流量统计

华为OD机试新系统真题【端口流量统计】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统4月26号机试真题【端口流量统计】。

qq_45776114的博客 762

Flutter Module 集成到 Android 项目

本文介绍了将FlutterModule集成到Android项目的两种官方方式:源码集成和AAR集成。源码集成适合开发阶段,通过Gradle直接引入Module源码,支持热重载但构建速度较慢;AAR集成适合发布阶段,将FlutterModule编译为AAR包引入,构建速度快但需重新编译。文章详细说明了两种方式的前置环境要求、项目结构准备、具体配置步骤及代码示例,包括Flutter页面打开方式和原生通信实现。最后对比了两种方式的优缺点,并提供了常见问题解决方案,如预加载引擎优化启动速度、ABI过滤减小包体积等。

梦想不只是梦与想的博客 2336

微调实操一: 增量预训练(Pretraining)

《微调入门篇:大模型微调的理论学习》我们对大模型微调理论有了基本了解,这篇结合我们现实中常见的场景,进行大模型微调实操部分的了解和学习,之前我有写过类似的文章《实践篇:大模型微调增量预训练实践(二)》利用的MedicalGPT的源码在colab进行操作, 由于MedicalGPT代码比较难以理解,而且模型只能从hugging face上下载,对于一些国内服务器无法访问,我重构了代码,让训练代码更有可读性,并参考LLAMAFactory的项目,增加了modelscope上下载模型,轻松在国内服务器运行.

youbingchen的博客 6993

Flutter打包aar并且集成现有Android项目

一、前言 Flutter现在已经很火了,但是如果我们要想使用Flutter开发,在新的Flutter项目上集成以前的所有代码肯定是不现实的,同时又不想将Flutter直接侵入到我们的项目结构中去,于是最优解就是将开发的Flutter项目单独编译成aar,然后以组件的形式被主工程依赖。 这样做的好处是显而易见的:对Flutter进行探索开发的同学可以在自己的Flutter工程内编写dart代码,独立...

sanshan_star的博客 8243

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

已有 Android 项目集成 Flutter 寻坑记

code小生,一个专注 Android 领域的技术平台公众号回复 Android 加入我的安卓技术群作者:dengyin2000链接:https://www.jiansh...

code小生 544

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android原生项目集成flutter项目混合开发详解

Android原生项目集成flutter项目混合开发 方案挑选: 目前主要有两种集成方式: 1、源码集成:就是谷歌官方提供的方案( https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps ) 2、 产物集成: Flutter项目单独开发,开发完成后发布成安卓以aar包,iOS的framework形式,原生项目依赖f...

whbk101的博客 3148

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: Android aar打包总结
下一篇: Flutter搭建底部导航
一杯清泉
博客等级 码龄11年 314粉丝 210原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值