Flutter 插件开发遇到的问题及解决方案

这篇具有很好参考价值的文章主要介绍了Flutter 插件开发遇到的问题及解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要对笔者flutter插件开发过程中如下问题做了解决。

一、Flutter插件android模块中的代码报红问题解决
二、Flutter Plugin 开发中引入本地 aar 包报错的问题。
三、Flutter插件项目中获取到 Activity

一、Flutter插件android模块中的代码报红问题解决

1、在开发Flutter插件时,打开插件的android项目,准备编写native端的代码时,发现各种报红,代码无法跳转,体验十分不好。就像我下面的截图一样:
flutter 写插件时编 全是报错,flutter
2、这是因为android项目中没有依赖Flutter库。利用local.properties中的flutter.sdk路径来加载。(我们文件中一般自动加了flutter.sdk的路径,加上了的不用管,没加的加上就行)。
flutter 写插件时编 全是报错,flutter
3、有些人可能在项目工程中没有看到该文件,原因可能是将local.properties文件隐藏了。
在 File => Settings => Editor => File Types =》Ignored Files and Folders 中移除就可以了。
flutter 写插件时编 全是报错,flutter
4、在插件工程的android目录下的build.gradle文件中添加如下代码
flutter 写插件时编 全是报错,flutter

//获取local.properties配置文件
    def localProperties = new Properties()
    def localPropertiesFile = rootProject.file('local.properties')
    if (localPropertiesFile.exists()) {
        localPropertiesFile.withReader('UTF-8') { reader ->
            localProperties.load(reader)
        }
    }
    //获取flutter的sdk路径
    def flutterRoot = localProperties.getProperty('flutter.sdk')
    if (flutterRoot == null) {
        throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
    }

    dependencies {
        compileOnly files("$flutterRoot/bin/cache/artifacts/engine/android-arm/flutter.jar")
    }

5、重新加载编译就不会爆红了。

二、Flutter Plugin 开发中引入本地 aar 包报错的问题。

1、我是直接在插件的安卓工程(不是example项目中的安卓工程!!)中的根目录新建了libs目录,将aar复制到该目录中,随后在builld.gradle文件中通过如下方式引用。

implementation files('libs/speedata/scandecode-release.aar')

flutter 写插件时编 全是报错,flutter
最后编译报错。报错内容如下:

Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :bytedcert project caused this error

本人通过 stack overflow 上苦苦搜寻终于得以解决。
解决方案如下 :
1、在插件项目的android目录下建立 lbs目录放置你要引入的arr包,我这里是多建了一层speedata。
2、在build.gradle文件中的 rootProject.allprojects部分 的 repositories 代码块下加入如下代码

flatDir{
    dirs project(':插件名称').file('目录名称')
}

如下图:
flutter 写插件时编 全是报错,flutter
3、在build.gradle文件的 dependencies 代码块中加入如下内容

implementation (name: '不带后缀的aar名称', ext: 'aar')

如图
flutter 写插件时编 全是报错,flutter
4、网上其他人说做到这里就够了,但是我重新加载项目会报如下错误。
Project with path <plugin_name> could not be found in root project <project_name> <plugin_name>和<plugin_name>为你的插件项目名称。

5、遇到这种错误,在你的settings.gradle文件中加入如下内容,再编译就能通过了。

include '你的插件项目名称'

如图
flutter 写插件时编 全是报错,flutter
原文可以看:怎么在flutter插件项目中引入本地aar?How to use local aar inside flutter plugin?

三、Flutter插件项目中获取到 Activity

笔者开发的插件需要获取到当前activity上下文对象,可以在你的插件入口类中实现ActivityAware接口,重写四个方法(onAttachedToActivity、onDetachedFromActivityForConfigChanges、onReattachedToActivityForConfigChanges、onDetachedFromActivity),可以在onAttachedToActivity方法中拿到activity。
我的代码如图:
flutter 写插件时编 全是报错,flutter
千万注意,方法调用的顺序!!!!
先是连接上 flutter 引擎 再是连接到 activity。
方法调用顺序为:onAttachedToEngine ⇒ onAttachedToActivity。
所以先在 onAttachedToEngine 设置方法调通道, 再去 onAttachedToActivity 利用 activity 对象做其它操作。

原文可以看:在flutter 插件项目中获取 activity。Get activity reference in flutter plugin.文章来源地址https://www.toymoban.com/news/detail-830093.html

到了这里,关于Flutter 插件开发遇到的问题及解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端开发中遇到的小bug--解决方案

    1.在 searchBox 搜索栏中,用到了多级下拉框的筛选条件,样式如下:  这样看起来是没什么问题的,但当我选择时,在框中显示的内容和筛选条件的内容就出错了: 这里其实是选择了 采矿业 -- 石油和天然气开采业 ,但显示框中是 林业,筛选条件的内容也有问题: 这里没有显

    2024年02月10日
    浏览(17)
  • 安装Elasticsearch步骤(包含遇到的问题及解决方案)

    注: 笔者是在 centos 云服务器环境下安装的Elasticsearch 目录 1.安装前准备 2.下载Elasticsearch  3.启动Elasticsearch 非常容易出问题  第一次运行时,可能出现如下错误: 一、内存不足原因启动失败 二、使用root用户启动问题 三、启动ES自动被killed 四、max virtual memory areas vm.max_map_c

    2024年02月06日
    浏览(24)
  • windows安装paddlepaddle遇到的问题及解决方案

    第一次尝试学习paddlepaddle先根据githup上官方的安装方式进行安装  我装的是cpu版本,安装过程中遇到了以下错误: 错误一、 报错信息如下:“error: Microsoft Visual C++ 14.0 or greater is required.“ 解决方案:     参考网上方案Microsoft Visual C++ 14.0 or greater is required. Get it with \\\"Microsoft

    2024年02月06日
    浏览(21)
  • JavaWeb中遇到404问题的几种解决方案

    检查XML路径配置 在Servlet中加入@WebServlet 检查class文件是否生成 博主最近也是被404问题所困扰,用过很多方法,现在来分享一点我自己的经验技巧,404问题主要是由于访问路径和XML中的配置存在了问题,现在提供几点解决思路(如果不准确,望见谅) 提示:以下是本篇文章正

    2024年02月08日
    浏览(29)
  • h5 视频全屏-横屏实现,遇到问题以及解决方案

    最近需要实现h5 视频全屏也就是横屏,横屏后需要将相关视频展现在侧边栏。考虑到h5是不能让手机强制横屏的,只能考虑用css 样式上横屏显示video 思路就是--利用position:fixed 定位,对于视频容器元素 transform 旋转90deg,容器的宽高调整为如下 但是遇到一个问题,就是旋转后

    2024年02月13日
    浏览(20)
  • stm32平衡小车制作遇到的问题和解决方案分享

            1、电机带负载所引起的死区补偿问题         2、利用MPU6050传感器进行某一轴的角度测量问题         3、stm32串口通讯得到的数据用DMA转运问题         我选用的电机为直流减速电机,型号为GA25-370,是12V的电机。         电机运行分为带负载和不

    2024年01月18日
    浏览(21)
  • DATAX的安装和使用上遇到的问题和解决方案

    1.datax-web安装流程: https://github.com/WeiYe-Jing/datax-web/blob/master/doc/datax-web/datax-web-deploy.md 2.安装和使用遇到的问题 1.在运行json数据的时候有如下报错 /usr/bin/python: can’t find ‘ main ’ module in ‘’ 原因:datax-web找不到datax启动文件(datax.py) 解决方案: 1.在安装datax-web的时候需要先

    2024年02月15日
    浏览(22)
  • flutter qr_flutter二维码库填充不满问题解决方案

     全局搜索找到_PaintMetrics类的_calculateMetrics()方法,将 这一行代码注释掉,然后添加_pixelSize = pixelSize这行代码,完整代码如下: class _PaintMetrics {   _PaintMetrics({     required this.containerSize,     required this.gapSize,     required this.moduleCount,   }) {     _calculateMetrics();   }   final int

    2024年01月19日
    浏览(22)
  • IDEA链接MySQL数据库遇到的部分问题及解决方案

    合理怀疑MySQL是不是克我,上次配环境配到崩溃就是因为MySQL安装失败,这次是因为链接不上IDEA 闲话少叙,直接看代码、报错信息以及解决方式: 代码: 报错信息:Tue Dec 12 01:47:57 CST 2023 WARN: Establishing SSL connection without server\\\'s identity verification is not recommended. According to MySQL 5

    2024年02月05日
    浏览(27)
  • “FPGA开发中Vivado生成bit文件遇到的错误解决方案“

    “FPGA开发中Vivado生成bit文件遇到的错误解决方案” FPGA开发是现在工业界中越来越广泛使用的技术,但是在开发过程中难免会出现一些问题。其中,Vivado生成bit文件报错是一个比较常见的问题。下面,我将详细介绍这个问题以及如何彻底解决。 一、问题描述 当我们进行FPGA项

    2024年02月04日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包