Flutter 踩坑

最近在学习 Flutter, 遇到一些奇奇葩葩的问题,各类买家秀与卖家秀使人懵逼,明明别人的代码也是这样写~~~~~~~~html

1、Android 原生引入 flutter 的问题

其实这个引入步骤比较简单前端

  • 建立一个 flutter module
flutter create -t module flutter_module
复制代码
  • 配置 android 项目 settings.gradle 文件
setBinding(new Binding([gradle: this]))  
evaluate(new File( 
    new settingsDir.parentFile,
        'flutter module的目录/.android/include_flutter.groovy'))
))
复制代码
  • build.gradle 配置文件中添加依赖
implementation project(':flutter')
复制代码

总体配置就这么简单,可是运行的时候的时候,项目挂了,出现了如下错误android

错误: 程序包android.support.annotation不存在
错误: 找不到符号
符号: 类 Fragment
错误: 找不到符号
符号:   类 NonNull
位置: 类 FlutterFragment
错误: 方法不会覆盖或实现超类型的方法
错误: 找不到符号
符号:   方法 getArguments()
位置: 类 FlutterFragment
错误: 方法不会覆盖或实现超类型的方法
错误: 方法不会覆盖或实现超类型的方法
复制代码

查看编译后的源码,确实 flutter_module 中一些依赖包不存在 bash

google 一番以后发现是 Android 包管理机制的问题,若是咱们在安装 Android Studio 的时候勾选了 Androidx,会默认使用 androidx 管理, 如图 工具

对于这个,解决方案有学习

  1. 下载Android Studio从新安装,这种比较麻烦
  2. 全局修改配置,借助 Android Studio 工具实现代码 迁移,详情可参考 迁移指南 可是这些步骤仍是不能解决个人问题,个人flutter_module 包依旧有一些旧的引用代码形式,仔细分析,个人 flutter_module 是经过 flutter create -t module 这种方式实现的,多是这种命令生成的代码是旧的包管理机制,猜测有没有生成 androidx 机制的呢,Google 以后,发现真的有
flutter create --androidx -t module flutter_module
复制代码

完美解决,山重水复疑无路???不存在的,果然,解决方案总比问题多gradle

2、Android 启动不明缘由

Process 'command 路径/flutter/bin/flutter'' finished with non-zero exit value 1 复制代码

这个问题就更懵逼了,可是能够经过ui

build clean 
复制代码

解决,缘由还不是很清楚this

3、总结

其实对于 前端同窗,学习 flutter 过程当中,可能更多的挑战是对原生陌生,仍是须要了解一些原生开发知识,不过,不少问题 google 如下,冷静分析下仍是能解决google

相关文章
相关标签/搜索