问题

  1. 网络问题
    卡在了resolving dependence
    网络不行,需要把仓库改成阿里云或者增加代理配置
    增加代理:在gradle.properties文件增加:

    org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=10800
    systemProp.socks.proxyHost=127.0.0.1
    systemProp.socks.proxyPort=10800
  2. 出现“\android\gradlew.bat" exited abnormally的报错
    先flutter doctor
    a. 因为不接受某些Android许可证:运行flutter doctor --android-licenses,并接受所有许可证
    b. sdk文件找不到:下载对应版本的sdk(从Android studio)下载

注意事项

  1. 建议最好统一使用命名路由的管理方式,这将会带来如下好处:

    • 语义化更明确。
    • 代码更好维护;如果使用匿名路由,则必须在调用Navigator.push的地方创建新路由页,这样不仅需要import新路由页的dart文件,而且这样的代码将会非常分散。
    • 可以通过onGenerateRoute做一些全局的路由跳转前置处理逻辑。
    • 不用传递值的路由用Navigator.pushNamed(context,”old_device_main”);需要传递值的路由用
      Navigator.push(
                          context,
                          MaterialPageRoute(
                          builder: (BuildContext context) =>
                              CallSample(arguments: "124.108.21.113")));
      onGenerateRoute 理论上是在每个路由跳转之前判断,但我的代码中不起作用,建议还是用上面的方法。
  2. 免费的icons: https://material.io/resources/icons/?style=baseline

  3. 数据持久化插件: shared_preferences

  4. 生成json model命令: flutter packages pub run json_model

  5. 使用?.来确认前操作数不为空

  6. route的字符串名称尽量不要用/隔开,否则会找不到!可以把名字在class里面定义,其他地方引用就行

  7. 很多插件都需要sdk27,以及build tools也是27版本的,在Android studio中安装(安卓8.1)

  8. 初始化一个类的时候需要加()!!!

  9. node.js 程序管理:pm2,后台运行npm start程序,使用方法:https://blog.csdn.net/qq_32281471/article/details/91369344

  10. 使用multi_image_picker插件的时候,注意需要在文件gradle.properties中加入

    android.useAndroidX=true
    android.enableJetifier=true
  11. 插件就是与原生的java代码做个借口,flutter其实就是一个UI库,注意增加依赖的时候,settings.gradle和build.gradle都需要添加依赖,package名需要一致