美文网首页
Flutter开发 - 今天遇到的问题

Flutter开发 - 今天遇到的问题

作者: shiyueZ | 来源:发表于2021-08-05 22:13 被阅读0次

    问题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

    相关文章

      网友评论

          本文标题:Flutter开发 - 今天遇到的问题

          本文链接:https://www.haomeiwen.com/subject/woevvltx.html