Android和flutter交互,maven库的形式导入aar包

2024-05-24 13:44

本文主要是介绍Android和flutter交互,maven库的形式导入aar包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记录遇到的问题,在网上找了很多资料,都是太泛泛了,使用后,还不能生效,缺少详细的说明,或者关键代码缺失,我遇到的问题用红色的标注了

导入aar包有两种模式

1.比较繁琐的,手动将aar包放在libs下面,so包放在jniLibs下面

在build.gradle中,以及导入aar包

其中第三行的获取方式

2.导入flutter打包好的maven库,这个非常检查,不需要自己导入aar和so

我这个放在本地

在app的build.gradle两个方法都加上

defaultConfig {
    ......
    ndk {
        abiFilters "arm64-v7a"
    }
}
 

到这里包就导入成功了

下面是代码部分

首先在清单文件下配置

第一个是原生的,第二个是我自定义的

下面说说几种打开flutteractivity页面,我在这上面遇到很多坑

1.默认启动的,利用路径直接打开FlutterActivity,没有缓存的Engine

2.带有缓存的Engine在application中设置,其中engine_id自定义唯一值,记得要销毁engine

其实到这里都没什么问题,下面遇到坑了,就是和flutter 的插件交互,我用的 pigeon

首先说遇到问题

1自定义的FlutterAppActivity,用上面的方式,不走生命周期,导致无法在定义的页面设置插件

解决:

1.最重要一点要重写FlutterActivity的getInitialRoute方法,这个相当于上面跳转的路由,不设置,页面空白

跳转时,我将路劲存在了INIT_PARAMS中

2.打开方式要修改,上面不适用,可以用原生的Intent跳转到FlutterAppActivity

initParams是跳转路劲

3.自定义的如何使用缓存的engine

上面有图,在application中设置存储

在自定义页面中

到这里打打开页面是完成了,下面时交互

首先Flutter开发给了我一份用pigeon生成的java文件

类似

我们要自定类去实现他

这时候自定的FlutterAppActivity作用体现出来了

我们在自定义的FlutterAppActivity中

setUp使方法生效

当时没有自定义的时候,我将代码写在application中,导致,页面还没打开,flutter就能调用Android方法,等于提前了

Android调用flutter的方法

目前还遇到一个问题,异步的ApiHost我无法调用,解决后会在这里记录原因和解决方法,有知道的可以告诉我一下

在网上看,异步和同步写法一样,只是最后回调时要在主线程,可是我现在连方法都进不去,苦恼

这篇关于Android和flutter交互,maven库的形式导入aar包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/998577

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动