最近在学习 Flutter, 遇到一些奇奇葩葩的问题,各类买家秀与卖家秀使人懵逼,明明别人的代码也是这样写~~~~~~~~html
其实这个引入步骤比较简单前端
flutter create -t module flutter_module
复制代码
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
管理, 如图 工具
对于这个,解决方案有学习
Android Studio
从新安装,这种比较麻烦Android Studio
工具实现代码 迁移,详情可参考 迁移指南 可是这些步骤仍是不能解决个人问题,个人flutter_module 包依旧有一些旧的引用代码形式,仔细分析,个人 flutter_module 是经过 flutter create -t module
这种方式实现的,多是这种命令生成的代码是旧的包管理机制,猜测有没有生成 androidx 机制的呢,Google 以后,发现真的有flutter create --androidx -t module flutter_module
复制代码
完美解决,山重水复疑无路???不存在的,果然,解决方案总比问题多gradle
Process 'command 路径/flutter/bin/flutter'' finished with non-zero exit value 1 复制代码
这个问题就更懵逼了,可是能够经过ui
build clean
复制代码
解决,缘由还不是很清楚this
其实对于 前端同窗,学习 flutter 过程当中,可能更多的挑战是对原生陌生,仍是须要了解一些原生开发知识,不过,不少问题 google 如下,冷静分析下仍是能解决google