Flutter运行错误及解决方法总结

以下是我學習flutter中遇到的各種問題及解決方法，分享出來以供大家參考～

问题一: Received status code 400 from server: Bad Request

原因:Android Studio 的代理设置有误.(有可能是首次安装 Android Studio 的时候,需要设置代理,顺手就填上了)
解決:
open /Users/yanan/.gradle
刪除類似以下四項.

问题二: Unable to tunnel through proxy

1：修改Gradle版本爲本地版本

將項目下Android / Gradle / gradle-wrapper.properties文件中的distributionUrl修改爲本地存在的gradle版本。

如：distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip

修改爲distributionUrl=file:///E:/Win1064/AndroidStudio/gradle/gradle-5.5.1-all.zip

distributionUrl=file:// 爲固定寫法，後面跟本地gradle所在路徑。

注意，最后路径一定要指向 .zip 压缩包而不是解压后的路径。

2：修改classpath为Android Studio版本

修改項目下的 build.gradle 中的 classpath :'com.android.tools.build:gradle:3.0.1'修改自己的Android Studio对应的版本。
如何查看Android Studio版本：通过工具栏中Help选项，选择Check for Updates，在弹出面板点击Configure。

问题三 Could not resolve all artifacts for configuration ‘:classpath’.

buildscript {
repositories {
maven {
url 'https://maven.google.com/'
name 'Google'
}
mavenCentral()
jcenter(){ url 'http://jcenter.bintray.com/'}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.novoda:bintray-release:0.9.1'
classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
mavenCentral()
jcenter(){ url 'http://jcenter.bintray.com/'}
maven { url 'https://jitpack.io' }
google()
}
}

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

將jcenter()裏面的http換爲https即可

buildscript {
repositories {
maven {
url 'https://maven.google.com/'
name 'Google'
}
mavenCentral()
jcenter(){ url 'https://jcenter.bintray.com/'}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.novoda:bintray-release:0.9.1'
classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
mavenCentral()
jcenter(){ url 'https://jcenter.bintray.com/'}
maven { url 'https://jitpack.io' }
google()
}
}

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

问题四 ios真机调试

*1.xcode設置中：accounts->添加自己apple id
*2.創建swift版的 flutter create flutter_demo
*3.創建oc版的 flutter create -i objc flutter_demo （該項目生成于項目/ios/文件夾下）
*4.打開ios/Runner.xcworkspace signing&capabilities-> team 添加賬號

问题五 fatal: ambiguous argument 'HEAD': unknown revision or path not in the workin

git卸載
which －a git
sh /usr/local/git/uninstall.sh

问题六 DioError [DioErrorType.DEFAULT]: FormatException: Unexpected character

這是因爲dio請求返回的數據默認是以json的格式讀取的,而返回的數據是密文形式,需要修改dio的Options的responseType爲ResponseType.plain,這樣返回的數據就以字符串形式處理.

Response response = await Dio().get(url, options: new Options(responseType:ResponseType.plain));

问题七 To provide both, use "decoration: BoxDecoration(color: color)".

BoxDecoration.color 不能與 Container.color 同時使用，

问题八When the exception was thrown, this was the stack: GridView 或 ListView 嵌套错误

shrinkWrap:true

问题九 GridView 或 ListView 无法滑动(与上层滑动组件冲突)

physics: NeverScrollableScrollPhysics(),

问题十 Missing essential plugin: org.jetbrains.android Please reinstall Android Studio from scratch.

刪除 ~/Library/Application Support/Google/AndroidStudioPreview4.1/plugins/disabled_plugin.txt

问题十一 dart Error: Null safety features are disabled for this library.

不支持空安全,移除不支持空安全的包貨禁用flutter的空安全支持

问题十二 homebrew:Mac安装brew连接不上解决方法 更换源

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

问题十三 app需要授权时崩溃退出 ios权限申请 添加字段 ios/Runner/Info.plist:

添加相應權限字段到 ios/Runner/Info.plist

问题十四 app提示英文

xcode找到“info.plist”，添加一項“Localized resources can be mixed”，值設置爲“yes”

Localization native development region 設置爲China

问题十五 无法访问 'https://github.com/ccgus/fmdb.git/':LibreSSL SSL_connect: SSL_ERRO

刪除代理即可。

git config --global --list

发现其中有 http.https.XXXXXX.proxy 和 https.https.XXXXXX.proxy配置
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy

问题十六 Another exception was thrown: Null check operator used on a null value

GridView 放在 Column 中 外部需要包裹Expanded()

问题十七 The PrimaryScrollController is currently attached to more than one ScrollPosition.

控制器沖突,需要爲每個頁面單獨制定控制器

final ScrollController _timeScrollController = ScrollController();
SingleChildScrollView(
controller: _timeScrollController,
child: _getTimeList(),
),