欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

flutter菜鸟踩坑之旅--持续更新中

程序员文章站 2022-07-14 17:01:54
...

磨磨蹭蹭两周多终于跑出来了这个app,接下来分享下过程中主要需要注意的地方与踩过的坑。

 

flutter菜鸟踩坑之旅--持续更新中

 

首先来一些基础的资源信息,比如官网、环境变量配置、基本命令与检测方式。

1、flutter中文网下载flutter,点击地址下载,选择自己需要的版本,下载到目标文件夹然后解压就行了。

flutter菜鸟踩坑之旅--持续更新中

 

 2、配置环境变量

 //在终端输入 vim  ~/.bash_profile  
//按 i 插入以下内容
//:wq 保存并退出


export PATH=/Users/wangjuan30/Documents/development/flutter/bin:$PATH
export ANDROID_HOME=/Users/wangjuan30/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
// 其中/Users/wangjuan30/Documents/development/flutter  为flutter包解压缩的位置                                                                   

3、在终端输入flutter -h ,如果没有提示命令不存在,如下图示,则配置成功

flutter菜鸟踩坑之旅--持续更新中

4、在终端输入flutter doctor可以检测到相关的安装需求,根据提示进行安装。

flutter菜鸟踩坑之旅--持续更新中

 

后面都是一些环境安装到成功运行项目过程中遇到的问题

1、问题:运行fultter doctor 一直报错,如下

CocoaPods installed but not initialized

cocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
  Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
  For more info, see https://flutter.dev/platform-plugins
To initialize CocoaPods, run:
  pod setup

解决:


cd ~/.cocoapods/repos //如果没有该文件,手动新建


git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master

2、问题:运行flutter run 一直报错 ops; flutter has exited unexpectedly.

一直找不到原因 无限重装brew也没解决,发现是给google发送邮件报错导致进程的终止

flutter菜鸟踩坑之旅--持续更新中

解决:主要禁用通过 Google Analytics 发送数据,造成的程序中断(以免国内网络连接失败问题)

cd flutter //flutter解压后的文件夹

./bin/flutter config --no-analytics //禁用通过 Google Analytics 发送数据(以免国内网络连接失败问题)

3、问题:运行flutter run 报错如下:

Failed to send crash report due to a network error: 
SocketException: OS Error: 信号灯超时时间已到 , 
errno = 121, address = clients2.google.com, port = 55220

解决:主要原因是国内的网络访问google的资源受限,我们这里改为阿里云的资源

第一处修改文件 :android/build.gradle


buildscript {
    ext.kotlin_version = '1.2.71'
    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:3.1.2'//如果版本过高可以改成3.1.2
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

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' }
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

第二处修改文件 :flutter包下面的gradle文件,如我的路径为:/Users/【本地电脑用户名】/Documents/development/flutter/packages/flutter_tools/gradle

buildscript {
    repositories {
//需要修改的地方
//        google()
//        jcenter()
        maven{
            url 'https://maven.aliyun.com/repository/jcenter'
        }
        maven{
            url 'http://maven.aliyun.com/nexus/content/groups/public'
        }
        maven{
            url 'https://maven.aliyun.com/repository/google'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'//如果版本过高可以改成3.1.2
    }
}

 

相关标签: 跨平台开发