版權聲明:本文為博主原創(chuàng)文章幌衣,未經(jīng)博主允許不得轉載鬼廓。http://www.reibang.com/p/22675c1632dc
轉載請標明出處:
http://www.reibang.com/p/22675c1632dc
本文出自 AWeiLoveAndroid的博客
本文首發(fā)在公眾號Flutter那些事队腐,未經(jīng)授權坐儿,嚴禁轉載犀斋。
Flutter系列博文鏈接 ↓:
工具安裝:
Flutter基礎篇:
- 谷歌Flutter1.0正式版發(fā)布
- Flutter基礎篇(1)-- 跨平臺開發(fā)框架和工具集錦
- Flutter基礎篇(2)-- 老司機用一篇博客帶你快速熟悉Dart語法
- Flutter基礎篇(3)-- Flutter基礎全面詳解
- Flutter基礎篇(4)-- Flutter填坑全面總結
- Flutter基礎篇(5)-- Flutter代碼模板贝乎,解放雙手,提高開發(fā)效率必備
- Flutter基礎篇(6)-- 水平和垂直布局詳解
- Flutter基礎篇(7)-- Flutter更新錯誤全面解決方案(圖文+視頻講解)
- Flutter基礎篇(8)-- Flutter for Web詳細介紹
- Flutter基礎篇(9)-- 手把手教你用Flutter實現(xiàn)Web頁面編寫
- Flutter1.9升級體驗總結(Flutter Web 1.9最新版本填坑指南)
Flutter進階篇:
- Flutter進階篇(1)-- 手把手帶你快速上手調試Flutter項目
- Flutter進階篇(2)-- Flutter路由詳解
- Flutter進階篇(3)-- Flutter 的手勢(GestureDetector)分析詳解
- Flutter進階篇(4)-- Flutter的Future異步詳解
- Flutter進階篇(5)-- 使用Flutter創(chuàng)建插件詳解并發(fā)布到Pub庫
- Flutter進階篇(6)-- PageStorageKey叽粹、PageStorageBucket和PageStorage使用詳解
- Flutter進階篇(7)-- Flutter路由輕量級框架FRouter
Dart語法系列博文鏈接 ↓:
Dart語法基礎篇:
Dart語法進階篇:
Flutter是一個新的跨平臺開發(fā)的工具肌毅,博主也玩了一段時間降宅,一步步的踩著坑摸石頭過河呼渣,這其中受盡了各種各樣的坑帅戒,各種谷歌炸茧,stackoverflow阔馋,F(xiàn)lutter官網(wǎng)等查資料每强,然而有些問題還是不能及時解決始腾,于是就自己嘗試著慢慢的摸索除了一些解決方案,在這里就系統(tǒng)的整理一下分享給大家空执,只希望大家給個雞腿吃吃浪箭,今晚的晚餐就靠大家支持了!
★ 使用Flutter開發(fā)項目辨绊,我發(fā)現(xiàn)大部分問題都是環(huán)境配置出的問題奶栖,所以這里先說 幾點需要特別注意的
,請務必看看這幾點门坷!
1宣鄙、使用gradle的時候,設置了
國內鏡像和翻墻工具不能一起用
默蚌,一旦一起用那么下載gradle很慢冻晤,要么下載不了,要么直接報錯3裎1腔 !
2锦茁、如果添加第三方庫下載很慢攘轩,請確保正確設置了
國內鏡像
和開發(fā)環(huán)境。如果還是不行码俩,建議翻墻試試看度帮。
不知道怎么配置的點擊這里進行查看: Flutter配置安裝詳解
3、創(chuàng)建相關緩存文件夾稿存。
在C盤的Flutter緩存目錄笨篷,具體為:C:\Users\Administrator\AppData\Roaming\Pub\Cache\hosted
瞳秽,Administrator是你的電腦名稱,這里面默認是一個名為 pub.dartlang.org
的文件夾冕屯,我們現(xiàn)在查找看看有沒有叫做 pub.flutter-io.cn
的文件夾寂诱,如果有,為了省事安聘,建議把pub.dartlang.org
的文件夾里面的文件全部 拷貝到 pub.flutter-io.cn
文件夾里面就可以了痰洒。如果沒有,就創(chuàng)建一個名為 pub.flutter-io.cn
的文件夾浴韭,然后再執(zhí)行拷貝工作丘喻。一般來講,配置了國內鏡像的話念颈,就會有 pub.flutter-io.cn
文件夾泉粉。以后如果再下載其他的庫,都會緩存在pub.flutter-io.cn
文件夾里面榴芳。
4嗡靡、你如果在國外,要使用Flutter窟感,無需設置國內鏡像讨彼,也無需翻墻。其實還是很棒的柿祈。
5哈误、確保設置好環(huán)境,不管是
Gradle
還是Android Studio
的配置
首次創(chuàng)建項目之后躏嚎,別急著開發(fā)蜜自,首先確保 Gradle
和 Android Studio
的配置保持一致!
(1)下面這張圖是這幾者之間的關系卢佣,請先看仔細了:
Plugin版本( Android Studio 版本) | Gradle 版本 | 對應的 Build Tools 版本 |
---|---|---|
Android Studio 3.0.0+ | Gradle 4.1+ | Build Tools 26.0.2+ |
Android Studio 3.1.0+ | Gradle 4.4+ | Build Tools 27.0.3+ |
Android Studio 3.2.0+ | Gradle 4.6+ | Build Tools 28.0.3+ |
(2)查看Android Studio 版本
:點菜單欄的 help --> About 重荠,出現(xiàn)的彈窗的第一行就是AS的版本,比如我的是:Android Studio 3.1.3
(3)查看項目中使用的gradle版本: 如圖所示珠漂,切換到project視圖晚缩,打開android/app/gradle/gradle-wrapper.properties,然后就可以看到gradle版本信息媳危,如圖我這里用的是gradle-4.10-2-all版本的
(4)本地gradle安裝版本:
Gradle默認安裝路徑 C:\Users\Administrator\.gradle\wrapper\dists\
目錄。下載的所有gradle版本都會在這里面冈敛。根據(jù)各人電腦安裝的gradle版本不同有所不同待笑,我這里顯示的我電腦安裝的版本,如圖所示抓谴,我們項目里面使用的gradle-4.10-2-all就是在這個路徑暮蹂,以后創(chuàng)建項目如果還要用到這個gradle配置就無需再去網(wǎng)上下載了寞缝。
(5)gradle更多版本,可以訪問gradle官網(wǎng) http://services.gradle.org/distributions/仰泻,找到對應版本進行下載(無需翻墻荆陆,可直接下載):
(6)關于Build Tools 版本的一些建議,建議下載Android SDK Platform 不同版本 以及對應的 Build Tools 版本集侯。
操作方式:File --> Settings --> Appearance & Behavior --> System Settings --> Android SDK
被啼,重點關注SDK Platform 和 SDK Tools
關鍵詳細信息截圖如下:
更多關于gradle有關的問題,可以看我的博客Android Studio3.0填坑指南棠枉, 如果這里未提到的浓体,請看這里全面總結Android Studio2.X的填坑指南
1、【大坑辈讶,切記】Flutter目錄的 dart sdk 和 [dart官網(wǎng)](https://dart.dev/get-dart
) 直接下載的dart sdk安裝包是不兼容的命浴,不要把dart官網(wǎng)直接下載的dart sdk安裝包直接放到flutter安裝路徑里面。
注:flutter是通過flutter doctor命令自動下載dart sdk的贱除,每一個版本的flutter自帶有一個版本的dart sdk生闲,我們不要自己去修改dart sdk版本,我們也不要替換掉flutter安裝路徑里面的dart sdk月幌。你在dart官網(wǎng)單獨下載的 dart sdk 放到flutter目錄里面 是沒用的碍讯。
具體踩坑過程,請看我去年發(fā)布的視頻飞醉,里面有詳細講解:Dart開發(fā)前端頁面基礎教程1
2冲茸、Flutter項目一定要放在英文路徑里面,否則會報錯缅帘,如圖所示:
3轴术、Flutter初次創(chuàng)建項目一直進不去,錯誤如圖所示:
【解決方式】首先關掉當前已經(jīng)打開的Android Studio進程钦无,然后打開Android Studio安裝目錄下的 bin
目錄,找到 idea.properties
文件,在文件最后追加以下這行代碼逗栽,disable.android.first.run=true
,然后保存失暂,以后再次打開Android Studio創(chuàng)建項目就不會卡住了彼宠。請看下圖所示:
4、執(zhí)行flutter doctor -v命令出現(xiàn)Android linceses status unknown
的提示弟塞。
- 這里我遇到過兩種不同的情況:
【問題1:】執(zhí)行flutter doctor -v命令出現(xiàn)Android linceses status unknown
的提示凭峡。
【問題分析:】新下載的sdk沒有同意Android協(xié)議。
【解決方案:】按錯誤提示所說的那樣决记,執(zhí)行命令flutter doctor --android-licenses
摧冀,然后出現(xiàn)的提示讓你選擇 y/n
,你只要輸入y
,然后回車索昂,一直堅持到最后就好了建车。
【問題2:】執(zhí)行flutter doctor -v命令出現(xiàn)Android linceses status unknown
的提示,但是奇怪的是我執(zhí)行命令flutter doctor --android-licenses
椒惨,自動就修復了缤至。
【解決方案:】執(zhí)行命令
flutter doctor --android-licenses
,奇怪的是這里并沒有讓我輸入其他的命令康谆,自動修復了领斥。不知道電腦抽了什么風。5秉宿、下載使用別人的開源庫戒突,使用Android Studio打開報錯,讓你下載一大堆庫描睦。
【注意】這里下載的包名包含有google膊存,intellij,apache忱叭,jetbrains之類的關鍵字隔崎。這樣的大量出現(xiàn)一定是Android Studio版本號不匹配的問題。如果說是使用的第三方庫沒有下載下來韵丑,會提示某個庫名稱爵卒,讓你下載的。這個需要注意了撵彻。
如圖所示:
【原因分析】因為別人使用的Android Studio版本號和你使用版本號不一致钓株。
【解決方案】查看Android Studio版本號在本文開頭有介紹。然后打開項目的android/build.gradle
陌僵,找到dependencies
轴合,然后修改步驟如下:
比如別人使用的是3.3.1
版本,而你電腦使用的是3.2.1
版本碗短,那么你把3.3.1
改成3.2.1
受葛,重新運行一下項目就正常了。
? 修改前:
dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
}
? 修改后:
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
6偎谁、Waiting for another flutter command to release the startup lock... 這個問題的解決
【問題分析:】你開啟新的flutter進程時总滩,后臺有一個flutter進程沒有關閉,導致的沖突巡雨。
【解決方案:】關閉后臺dart進程闰渔,關閉IDE,然后重新打開IDE铐望,運行項目澜建,運行到設備試試看向挖,基本問題不大了蝌以。
(一句話:重啟基本能解決問題)
7炕舵、Flutter 運行項目 一直卡在Initializing gradle...不能動了
【問題分析:】鏡像的原因導致的,國內訪問不了谷歌跟畅,需要翻墻咽筋。
【解決方案:】
方案1:翻墻試試看。
如果不行嘗試就看看方案2: 打開
項目根目錄/android/
徊件,找到build.gradle
文件奸攻,打開,首先注釋掉google()
和jcenter()
虱痕,然后在下方添加一行代碼maven { url 'https://maven.aliyun.com/repository/google' }
睹耐,這個是阿里云的鏡像,構建速度會快一些部翘,具體放置位置如下所示:
buildscript {
repositories {
//google()
//jcenter()
// 新增一行代碼 放在這里
maven { url 'https://maven.aliyun.com/repository/google' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
}
}
allprojects {
repositories {
// 注釋掉google()和jcenter()
//google()
//jcenter()
// 新增一行代碼 放在這里
maven { url 'https://maven.aliyun.com/repository/google' }
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
如果還是不行的話硝训,那就把google()
或者jcenter()
的注釋取消,逐個嘗試看看新思,那三個鏡像總有一個是可以使用的窖梁。
方案3: 方案2中的國內鏡像設置之后還是卡住,建議看看是不是同時開了翻墻工具夹囚。國內鏡像和翻墻工具會沖突纵刘,用了國內鏡像,建議關閉翻墻工具荸哟。
方案4:(無奈之計)最近幫朋友看了這個問題假哎,前面幾項都試過了,還是很卡鞍历,最后一看電腦配置舵抹,AMD的CPU,吐我一口老血堰燎,編程開發(fā)多年掏父,一直是intel的CPU(因為android sdk有一個intel加速工具),intel的cpu跑項目更快秆剪,AMD的剛開始做開發(fā)用過赊淑,特別卡,放棄了仅讽,換成了intel的一直用到現(xiàn)在陶缺。如果是AMD的CPU,建議換成intel的CPU,當然如果你條件好洁灵,建議買個mac更好饱岸。
8掺出、初次創(chuàng)建項目,一片紅苫费,怎么辦汤锨?如圖所示:
【原因分析】項目說需要的用到的依賴庫還沒有下載下來,所以爆紅百框。
【解決方案】點擊右上角的Get depencies
鏡像下載相關的庫闲礼。這時候可以看到下方的命令窗口顯示:“running flutter packages get in xxx
”,耐心等待即可铐维。
9柬泽、點擊Get depencies
后者命令行輸入flutter packages get
結果卡住了,想要的庫下載不下來怎么辦嫁蛇?
【原因有很多】:
(1)沒有正確安裝flutter環(huán)境锨并,比如沒有執(zhí)行
flutter doctor
命令去下載dart sdk,導致一些相關的dart庫爆紅或者下載不下來睬棚。
解決:建議執(zhí)行flutter doctor
命令去下載dart sdk
(2)沒有配置國內鏡像和創(chuàng)建相關緩存文件夾第煮。導致下載很慢。
在C盤的Flutter緩存目錄闸拿,具體為:C:\Users\Administrator\AppData\Roaming\Pub\Cache\hosted
空盼,這里面默認是一個名為 pub.dartlang.org
的文件夾,我們現(xiàn)在查找看看有沒有叫做 pub.flutter-io.cn
的文件夾新荤,如果有揽趾,為了省事,建議把pub.dartlang.org
的文件夾里面的文件全部 拷貝到 pub.flutter-io.cn
文件夾里面就可以了苛骨。如果沒有篱瞎,就創(chuàng)建一個名為 pub.flutter-io.cn
的文件夾,然后再執(zhí)行拷貝工作痒芝。一般來講俐筋,配置了國內鏡像的話,就會有 pub.flutter-io.cn
文件夾(不知道怎么配置的點擊這里進行查看: Flutter配置安裝詳解)严衬。以后如果再下載其他的庫澄者,都會緩存在pub.flutter-io.cn
文件夾里面。
10请琳、Unable to find git in your PATH
錯誤如圖所示:
【原因】未配置git環(huán)境變量或者配置不對粱挡。正確的應該是找到git根路徑\bin
,比如你的路徑是:E:\git\bin俄精,你就把這個路徑配置到環(huán)境變量中询筏。
11、SocketException: OS Error 信號燈超時時間已到
建議:設置國內鏡像竖慧,然后重啟試試看嫌套。實在不行就翻墻試試看逆屡。
12、flutter不是內部或者外部命令踱讨,也不是可運行的程序或者處理文件魏蔗。
【解決方案】把Flutter
添加到環(huán)境變量
。具體的請查看這里:開發(fā)工具總結(10)之Flutter從配置安裝到填坑指南詳解勇蝙,有詳細圖文說明沫勿。
13、模擬器運行白屏問題
【解決方案有很多種味混,可以根據(jù)實際情況自由選擇:】
(1)如果用的是Genymotion模擬器,或者其他的模擬器诫惭,可能原因是集成顯卡驅動沒裝好翁锡,如果缺少某個驅動,建議下載驅動精靈或者品牌官網(wǎng)驅動安裝夕土,然后再運行模擬器試試看馆衔。
(2)如果用的是Genymotion模擬器,可能是virtualbox的版本與genymotion版本不兼容引起的怨绣。建議下載自帶virtualbox的genymotion版本再試試看角溃。
(3)打開模擬器設置界面,run->Edit Configurations 里面添加
--enable-software-rendering
再次運行就OK了篮撑。
(4)建議新建模擬器時减细,
不要勾選硬件加速
,這個一般用不上赢笨,硬件加速巨坑未蝌,與某些東西不兼容〖攵剩可以在AS右上角找到Android模擬器管理萧吠,找到對應的模擬器,看看你的模擬器設置里面是否有硬件加速桐筏,如果有纸型,就換成其它的。
(5)使用原生平臺的冷啟動方案梅忌。Flutter已經(jīng)提供了冷啟動方案狰腌,下面是一個最簡單的示例:
【注意】:有些人編輯android
里面的xml文件的時候,會發(fā)現(xiàn)部分是紅色的铸鹰,其實你可以點擊菜單open
癌别,然后選擇你項目里面的android
目錄,然后在彈出的窗口選擇open in new window
蹋笼,表示新開一個窗口展姐,這樣去編寫代碼躁垛,不會出錯。
完整示例代碼請查看:https://github.com/AweiLoveAndroid/Flutter-learning/tree/master/projects/flutter_white_screen
drawable目錄有一個launch_background.xml
文件圾笨,我們打開之后可以看到一個注釋教馆,意思是說:這里面的內容可以換成你的App logo或者其它內容,我們可以做一個修改擂达,內容如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
<item>
<!-- 中間的圖片 -->
<bitmap
android:gravity="center"
android:scaleType="fitXY"
android:src="@mipmap/ic_launcher" />
</item>
</layer-list>
最后一步是修改styles.xml
文件土铺,添加兩個配置item選項,示例如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
</resources>
具體的文件目錄位置如下圖:
最終示意圖如下所示:
14板鬓、安裝項目到模擬器或者手機時悲敷,Gradle task assemableDebug executing
之后log停止并自動退出安裝,然后應用安裝不到模擬器或手機上俭令。
問題如圖所示:
【原因】:Flutter版本太低了后德。
【解決方案】使用flutter upgrade
更新Flutter。
15抄腔、git clone下載Flutter源碼倉庫瓢湃,出現(xiàn)error: RPC failed; curl 18 transfer closed with outstanding read data remaining
【原因】
由于Http協(xié)議錯誤,當Clone的時候赫蛇,因為curl的postBuffer默認值太小的原因绵患,而項目可能本身比較大,所以下載失敗悟耘。
【解決方案:】
打開git命令行 輸入 git config –global http.postBuffer 524288000
落蝙,然后可以輸入git config –list
查看剛才的設置是否生效。
說明: git config –global http.postBuffer 524288000
命令的意思:相當于把curl的postBuffer的值修改的大一些作煌。524288000的單位是B掘殴,相當于500MB。
16粟誓、執(zhí)行flutter命令的時候奏寨,360殺毒軟件彈窗提示有病毒。
【解決方案:】
點擊右下角 信任此文件
即可鹰服。建議執(zhí)行flutter工程的時候病瞳,暫時關閉殺毒軟件
,如圖所示悲酷。
有時候升級flutter的時候也會爆出這樣的問題套菜,建議關閉殺毒軟件。
17设易、執(zhí)行flutter install命令安裝apk到模擬器的時候報錯逗柴,報錯提示是:
【原因】由于使用了native libraries
。該native libraries
不支持當前的cpu的體系結構顿肺。我當前用的是x86的模擬器戏溺。
【解決方案】打開項目根目錄/android/app/build.gradle渣蜗,在android節(jié)點里面添加以下內容:
splits{
abi {
enable true
reset()
include 'x86', 'armeabi-v7a','x86_64'
universalApk true
}
}
具體的請看下圖所示:
如果以上操作還不行就換一個arm的模擬器或者真機運行。如下圖就是運行在arm模擬器上的示范操作:
18旷祸、執(zhí)行flutter upgrade命令過程中出現(xiàn)的問題耕拷。
【解決方案】重啟命令行,重新執(zhí)行flutter upgrade命令托享,它會自動下載sdk需要的各種工具骚烧,這說明環(huán)境是沒問題的,配置也是沒問題的,網(wǎng)絡也是OK的。如下圖所示:
19豺总、編譯項目的過程中出現(xiàn)的版本兼容問題,如圖所示凭戴。
【解決方案有以下幾種方式】
只要看到錯誤信息含有which doesn't match any version
這樣的提示基本都可以使用以下解決方案:
- Flutter插件版本太老,更新一下Flutter版本炕矮,再試試看。
- 在項目的根路徑的
pubspec.lock
文件和pubspec.yaml
文件里面搜索者冤,確保pubspec.lock
文件的引入的第三方插件庫的版本號
和pubspec.yaml
文件里的版本號一致
肤视。
- 在項目的根路徑的
- 項目里面引入的第三方插件庫版本和開發(fā)環(huán)境不匹配導致的兼容問題。建議把第三方插件庫的源碼下載下來涉枫,放到項目里面去邢滑,然后去
修改插件庫源碼里依賴的Flutter和Dart版本配置信息
即可。使用源碼是最好的解決方式愿汰。
- 項目里面引入的第三方插件庫版本和開發(fā)環(huán)境不匹配導致的兼容問題。建議把第三方插件庫的源碼下載下來涉枫,放到項目里面去邢滑,然后去
- 在C盤的Flutter緩存目錄困后,具體為:
C:\Users\Administrator\AppData\Roaming\Pub\Cache\hosted
,這里面默認是一個名為pub.dartlang.org
的文件夾衬廷,我們現(xiàn)在查找看看有沒有叫做pub.flutter-io.cn
的文件夾摇予,如果有,為了省事吗跋,建議把pub.dartlang.org的文件夾里面的文件全部 拷貝 到pub.flutter-io.cn文件夾里面就可以了侧戴。如果沒有,就創(chuàng)建
一個名為pub.flutter-io.cn
的文件夾跌宛,然后再執(zhí)行拷貝工作酗宋。(一般來講,配置了國內鏡像的話疆拘,就會有pub.flutter-io.cn
文件夾)蜕猫。
- 在C盤的Flutter緩存目錄困后,具體為:
然后檢查一下文件夾里面有沒有我們報錯的那個包,如果有哎迄,請刪除回右,然后再去點擊 pub get
下載更新一下隆圆。如圖所示:
20、flutter upgrade因為版本兼容問題導致升級失敗楣黍。
【解決方案】這里面是因為 flutter_tools 包的兼容性問題
導致的匾灶,可能是sdk版本兼容性問題,我們可以執(zhí)行 flutter upgrade
升級一下Flutter再試試看租漂,如果不行阶女,就按上一條的去做。
21哩治、Unsupported Android Studio version秃踩,意思是:Flutter插件不支持當前AS版本。
【原因】
當前的AS是3.2的版本业筏。Flutter插件對AS3.2暫時還不兼容(此問題是我在第一次創(chuàng)建flutter的時候出現(xiàn)的憔杨,時間是2018年5月份,不過現(xiàn)在flutter插件已經(jīng)兼容AS3.2了蒜胖,現(xiàn)在貌似沒有出現(xiàn)這個問題了消别。)。
以后如果還有更新的AS版本出來台谢,只要Flutter插件沒有及時更新的話寻狂,可能還會有版本兼容的提示信息。
【解決方案】
使用3.0或者3.1版本的AS開發(fā)就OK了朋沮。
22蛇券、執(zhí)行flutter upgrade命令更新Flutter時,出現(xiàn)SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
【解決方案】
打開git命令行輸入 ·git config –global http.postBuffer524288000·,然后可以輸入 ·git config –list· 查看剛才的設置是否生效樊拓。
23纠亚、使用flutter doctor命令出現(xiàn)的錯誤,這類錯誤可能有多種形式筋夏,它們都有一個共同的關鍵字 StartBitsTransferCOMException
我遇到的幾個不同的錯誤示例圖如下:
【解決方案】 原因有2個:
(1)BITS傳輸服務未開啟:
計算機 --> 右鍵 管理
--> 服務和應用程序里面
蒂胞,點擊服務
,然后如下圖所示:
然后選中圖中標記的這個叁丧,右鍵點擊屬性
啤誊,然后改成自動,確定拥娄。如下圖所示:
(2)沒有設置國內鏡像:
如果你在國內使用 Flutter蚊锹,那么你可能需要找一個與官方同步的可信的鏡像站點,幫助你的 Flutter 命令行工具到該鏡像站點下載其所需的資源稚瘾。你需要為此設置兩個環(huán)境變量:PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL
牡昆,然后再運行 Flutter 命令行工具。
需要添加國內鏡像到環(huán)境變量中。具體如下:
FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cnPUB_HOSTED_URL: https://pub.flutter-io.cn
如下圖所示:如果還出現(xiàn)下載錯誤 建議重啟電腦再試試看丢烘。
24柱宦、update_dart_sdk.ps1文件里面出錯,有多種錯誤表現(xiàn)形式播瞳,如下面3個圖所示掸刊。
我們可以看到這幾種錯誤的共同之處:都有 BitsTransformer
或者 CategoryInfo
之類的字眼。
報的錯誤會有各種各樣赢乓,但是只要有以上提到的兩種字眼的解決方式如下:
【解決方案】
建議 刪除Flutter根路徑/bin/cache文件夾
忧侧,然后重新執(zhí)行 flutter doctor
命令。
我電腦的Flutter根路徑/bin/cache文件夾所在位置如下圖所示:
25牌芋、 could not resolve all files for configuration 'classpath' could not find ling-gradle-api.jar
【解決方案:修改flutter安裝目錄里面的flutter.gradle全局配置
26蚓炬、Please review your Gradle project setup in the android/ folder
27、android/app.gradle 里面的語法錯誤導致的編譯失敗
project evaluation failed including an error in afterEvaluate{}
28躺屁、Bad UTF-8 encoding
29肯夏、Invoke-customs are only supported starting with Android O (--min-api 26) Message{kind=ERROR, text=Invoke-customs are only supported starting with Android O (--min-api 26), sources=[Unknown source file], tool name=Optional.of(D8)}
【問題產(chǎn)生】這個問題是Android項目導入Flutter module之后出現(xiàn)的。
【問題解決】在gradle.build
中添加以下內容:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
如下圖所示:
30犀暑、The application may be doing too much on its main thread.
字面意思就是應用在主線程運行太多驯击。
解決: 請適當做一些異步或者子線程操作,減輕主線程負擔耐亏。
31、Gradle編譯失敗因為Flutter app用到了 androidx
解決:參考谷歌官方文檔配置即可,CV就可以了:https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility