Android Flutter 插件开发问题集锦
2020-12-30 本文已影响0人
Gavin_2020
环境配置问题
"Android liceness not accepted?"
解决方案: 使用命令"flutter doctor -android -licenses"

"Flutter plugin not installed:this........"以及"Dart plugin not installed:this......"

解决方案:
1.在android studio中安装flutter插件具体如图:


2.如果已经安装还是出现错误,进行如下方法:
①首先确定flutter版本,命令行使用"flutter --version"
1.26版本插件修复了旧版安装了插件还会提示错误的问题,这里可以尝试下安装1.26以上的版本.

②如果还是报错,确定android sutdio,版本 点击help->about查看as版本

注意下图圈住的版本201.8743记住此版本号.

③找到android studio下的插件目录查询版本52.1.1

④查询flutter官网版本对应的版本号
前往https://plugins.jetbrains.com/plugin/9212-flutter/versions查询版本号,搜索flutter即可进入插件
选择versions,选择使用对应的编译器比如android studio

这里可以看到52.1.1对应版本201.7223-201.*,上面我们在②步骤中查询到了201.8743版本也就是说android studio支持此插件版本合适可以使用,如果不支持替换为匹配版本即可。

插件开发问题
如何在plugin中使用activity回调?
1.找到插件桥接plugin类,实现ActivityAware接口

2.找到实现的方法onAttachedToActivity(ActivityPluginBinding binding)函数

3.使用binding.addActivityResultListener方法添加onActivityResult回调

如果在plugin中获取activity对象(不是Context)?

Flutter plugin 中集成现有的android module?
将module中包含的资源以及类文件按照结果放入对应文件下即可如下图:

类型转换问题"_internallinkedhashmap<dynamic,dynamic> is not a subtype of type Map<String,String>"
如错误提示意思为使用的类型不能强制转换
如图,将Map<String,String>替换为Map<dynamic, dynamic>,然后使用new Map<String,String>.from(map); 转换为string类型的map即可。
