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

相关文章

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的