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我无法调用,解决后会在这里记录原因和解决方法,有知道的可以告诉我一下

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/329795.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux应用入门(二)

1. 输入系统应用编程 1.1 输入系统介绍 常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等。用户经过这些输入设备与Linux系统进行数据交换。这些设备种类繁多,如何去统一它们的接口,Linux为了统一管理这些输入设备实现了一套能兼容所有输入设备的…

【真人Q版手办风】线稿手绘+ AI绘图 Stable Diffusion 完整制作过程分享

大家好,我是设计师阿威。 今天给大家分享一篇【真人Q版卡通手办】风格的制作过程,话不多说,进入正题。 成品预览 手绘线稿 首先,我使用的是老款手绘软件【SAI】,用[钢笔工具]进行了人物的线稿Q版描绘。&#x1f447…

最大负载1kg!高度模块化设计!大象机器人智能遥控操作机械臂组合myArm MC

引入 近年来,市面上涌现了许多类似于斯坦福大学的 Alopha 机器人项目,这些项目主要通过模仿人类的运动轨迹来进行学习,实现了仿人类的人工智能。Alopha 机器人通过先进的算法和传感技术,能够精确复制人类的动作,并从中…

二、使用Django创建一个基础应用

职位管理系统 - 建模 职位名称类别工作地点职位职责职位要求发布人发布日期修改日期 安装django pip install django5.0查看django版本 python -m django --version创建项目 django-admin startproject recruitment启动服务 python manage.py runserver 0.0.0.0:8000创建…

数据库|基于T-SQL创建数据库

哈喽,你好啊,我是雷工! SQL Server用于操作数据库的编程语言为Transaction-SQL,简称T-SQL。 本节学习基于T-SQL创建数据库。以下为学习笔记。 01 打开新建查询 首先连接上数据库,点击【新建查询】打开新建查询窗口, …

Vue3:封装Table 表格组件

组件官网 elementPlus : 点击跳转 封装组件 创建新的组件文件: Table.vue <!-- PropTableS &#xff1a; 父组件传递过来的数据 (对象)PropTableS.tables : 父组件传递的对象中 存放表格每行显示的数据PropTableS.keyS &#xff1a; 父组件传递过来的对象&#xff0c;里…

java集合类详解

目录 1、数组导入&#xff1a; 2、单列集合 List接口 1、ArrayList&#xff1a;数组列表 ArrayList类中的方法 2、LinkedList&#xff1a;链表列表 3、Vector&#xff1a;数组列表 4、list集合的遍历 1、for循环遍历 2、增强for循环 3、迭代器遍历 Set接口 1、Has…

React渲染流程

在 React 渲染分为两个阶段&#xff0c;Render 和 Commit&#xff0c;Render 是修改 React 组件的状态&#xff0c;把需要更新的组件标记为待更新&#xff0c;在 Commit 阶段将待更新的组件进行渲染并最终更新到浏览器的 Dom 树中。 Render 阶段是可以并执行操作的&#xff0c…

vue3项目+TypeScript前端项目 ———— elemnet-plus,svg图标配置,sass,mock数据

一.集成element-plus 官网地址 安装 pnpm install element-plus 引入 // main.ts import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/index.css import App from ./App.vueconst app createApp(App)app.use(ElementPlus) app.…

JAVA基础面试题(第十三篇)线程并发死锁等!

线程死锁并发 1. 线程和进程有什么区别&#xff1f; 线程具有许多传统进程所具有的特征&#xff0c;故又称为轻型进程(Light—Weight Process)或进程元&#xff1b;而把传统的进程称为重型进程(Heavy—Weight Process)&#xff0c;它相当于只有一个线程的任务。在引入了线程的…

JetLinks物联网平台初步使用——TCP接入

基于上一篇&#xff0c;完整的搭建了前后端整个系统&#xff0c;可以在windows 7完美的运行使用。 目录 1、创建网络组件 2、创建协议管理 3、创建网关 ​4、创建产品 ​5、创建设备 6、模拟对接 1、创建网络组件 进入平台后&#xff08;用户名密码都是admin&#xff…

GRPC服务使用

目标&#xff1a; 1.什么是GRPC服务&#xff1f; 2.安卓客户端怎么不熟GRPC服务&#xff1f; 3.怎么生成GRPC的java类&#xff1f; 一、什么是GRPC服务&#xff1f; GRPC 一开始由 google 开发&#xff0c;是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。 支持长…

Android Webview加载pdf文件无法缩放问题

WebView设置开启页面缩放&#xff1a; settings webView.getSettings(); settings.setSupportZoom(true); settings.setJavaScriptEnabled(true); settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); settings.setBuiltInZoomControls(true); sett…

Matlab 2023b学习笔记1——界面认识

下载安装好Matlab后&#xff0c;可以看到如下界面&#xff1a; 可以看到&#xff0c;这时只有命令行窗口。我们在上方工具栏中选择“布局”—— “默认”&#xff0c;即可看到左右两边多出来了“当前文件夹”与“工作区”两栏。 一、当前文件夹界面 这个界面显示的是当前目录下…

常见应用流量特征分析

目录 1.sqlmap 1.常规GET请求 2.通过--os-shell写入shell 3.post请求 2.蚁剑 编码加密后 3.冰蝎 冰蝎_v4.1 冰蝎3.2.1 4.菜刀 5.哥斯拉 1.sqlmap 1.常规GET请求 使用的是sqli-labs的less7 &#xff08;1&#xff09;User-Agent由很明显的sqlmap的标志&#xff0c;展…

二叉数之插入操作

首先是题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 &#xff0c;新值和原始二叉搜索树中的任意节点值都不同。 注意&#xff0c;可能存在多种有效…

佩戴安全头盔监测识别摄像机

佩戴安全头盔是重要的安全措施&#xff0c;尤其在工地、建筑工程和工业生产等领域&#xff0c;安全头盔的佩戴对于工人的生命安全至关重要。为了更好地管理和监控佩戴安全头盔的情况&#xff0c;监测识别摄像机成为了一项重要的工具。监测识别摄像机可以通过智能技术监测并记录…

小程序-滚动触底-页面列表数据无限加载

// index/index.vue <template> <!-- 自定义导航栏 --> <CustomNavbar /> <scroll-view scrolltolower"onScrolltolower" scroll-y class"scroll-view"> <!-- 猜你喜欢 --> <Guess ref"guessRef" /> </s…

vue koa post 请求代理失败问题总结

场景是在使用 koa 写接口时&#xff0c;客户端发送 post 请求&#xff0c;服务端会报下面这个错误&#xff0c;导致接口未能访问成功&#xff1a; 前端接口一直 Pending 状态&#xff0c; 解决方案&#xff1a;走的是本地 mock 数据&#xff0c;未访问服务端的接口 总结&#x…

.NET调用阿里云人脸核身服务端 (ExecuteServerSideVerification)简易流程保姆级教学

需要注意的是&#xff0c;以下内容仅限基础调用 功能说明 该功能是输入核验人的姓名和身份证以及人脸照片&#xff0c;去阿里库里面匹配&#xff0c;3个信息是否一致&#xff0c;一致则验证通过&#xff0c;需要注意的是&#xff0c;人脸有遮挡&#xff0c;或者刘海&#xff0…