Flutter开发 - 今天遇到的问题

2021-08-05  本文已影响0人  shiyueZ

问题1

VSCode在安卓模拟器或者真机上调试问题

问题

运行flutter,安卓模拟器连接成功,但是一直卡“ Running Gradle task 'assembleDebug' ”!

原因

运行Android项目会加载build.gradle,下载相关的依赖库,但谷歌默认提供的下载方式在国内非常慢,导致一直卡在初始化这里,无法调试。

解决

找到android根目录下的build.gradle文件,修改一下下载的方式,如下:

buildscript {
    repositories {
        // google()
        // jcenter()
        /* 添加下面的代码 */
         maven { url 'https://maven.aliyun.com/repository/google' }
         maven { url 'https://maven.aliyun.com/repository/jcenter' }
         maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
         maven {url 'http://download.flutter.io'}
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0'
    }
}
allprojects {
    repositories {
        // google()
        // jcenter()
        maven { url 'https://maven.aliyun.com/repository/google' }
         maven { url 'https://maven.aliyun.com/repository/jcenter' }
         maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
         maven {url 'http://download.flutter.io'}
    }
}

还有一个地方需要修改,找到Flutter的安装目录(就是当初下载flutter时你存放的位置),文件路径如下:

/flutter/packages/flutter_tools/gradle/flutter.gradle
打开flutter.gradle文件修改下载依赖地址,如下:

buildscript {
    repositories {
//        google()
//        jcenter()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0'
    }
}

保存后,再次运行就可以运行成功了!

问题2

Looking up a deactivated widget's ancestor is unsafe

问题

在某些安卓手机上,若有弹框相关的功能,在运行到关闭弹框代码时,会报错并且一直卡在弹框显示中!但在iOS上和某些安卓机上没问题,在安卓模拟器上也没有问题。

原因

如果在showModalBottomSheet里面又有showDialog弹框,在showModalBottomSheet底部弹框pop(context)后,showModalBottomSheet的context已经销毁了,若showDialog再调用pop(context),会找不到context导致项目奔溃报错。

应该会有其他场景也会报这个错误,问题原因应该也是这个。

解决

在关闭showDialog的弹框时,使用pop(this.context)就没问题了。使用this.context应该是始终能找到当前showDialog的context,这样就不用担心调用到已经被销毁了的context,导致报错。

最后

好了,今天在开发过程中遇到的问题就这些,如以上内容有错误,请不吝指正!

参考文档

https://www.jianshu.com/p/a1775cf9f3c3
https://blog.csdn.net/qq_40020447/article/details/105719696

上一篇下一篇

猜你喜欢

热点阅读