1.Flutter-Multiple commands produce
問題分析
使用Xcode 10構(gòu)建所有Flutter項目都會有該問題键畴。在使用插件時扮念,有兩個競爭構(gòu)建操作將Flutter.framework復(fù)制到構(gòu)建應(yīng)用程序Frameworks目錄中:
解決方案
①.將XCODE的編譯系統(tǒng)改為legacy build system
,如下圖所示
②.使用新的Xcode 10構(gòu)建系統(tǒng)闪唆。
- 打開ios / Runner.xcworkspace
- 在項目導(dǎo)航器側(cè)欄中選擇Runner項目盅粪。
- 在主視圖中,選擇Runner目標(biāo)悄蕾,然后選擇Build Phases選項卡票顾。
- 展開Embed Frameworks階段并從嵌入式框架列表中選擇Flutter.framework。
- 單擊 - 從列表中刪除Flutter.framework(確保保留App.framework)帆调。
2.進行Flutter開發(fā)時奠骄,設(shè)備連接一直顯示loading…
1、先連接網(wǎng)絡(luò)(在打開flutter工程時好像需要檢查什么東西番刊,所以盡量在有網(wǎng)的情況下打開含鳞,等可以調(diào)試了再斷網(wǎng)應(yīng)該也沒問題)
2、在任務(wù)管理器的詳細(xì)信息中芹务,關(guān)閉所有的dart進程(關(guān)閉卡死的進程民晒,避免在下次運行命令時進程被鎖)
3、重啟開發(fā)工具(重啟)
如果以上都不奏效锄禽,可重置AndroidSDK
flutter config --android-sdk /Users/xxx/Library/Android/sdk
3. Gradle task assembleDebug failed with exit code 1
解決方案
- 終端執(zhí)行
flutter clean
重新運行run
4.Waiting for another flutter command to release the startup lock
原因分析:
這個錯誤發(fā)生于在編譯器里get package潜必,等了很久沒有獲取到package之后,我果斷關(guān)掉了AS沃但,打開終端輸入了flutter doctor但是出現(xiàn)了這個錯誤磁滚。
解決方法如下:flutter/bin/cache/lockfile
- 打開flutter的安裝目錄/bin/cache/
- 刪除lockfile文件
- 重啟AndroidStudio
5. The 'Pods-Runner' target has transitive dependencies
原因:
打包iOS 時 使用了
flutter_flipperkit
這個插件,就會報錯宵晚,移除掉該插件就好了垂攘,這個插件之針對Andropid 調(diào)試使用
5.IOS上打包后出現(xiàn)could not create Dart VM
因為你沒有生成flutter_assets相關(guān)文件,所以導(dǎo)致Dart代碼沒有打進包里
解決方法:在打包前運行一下命令淤刃,生成的文件不用管晒他,繼續(xù)你的操作
flutter build ios --release
6.use_frameworks報錯
use_frameworks!
-> dynamic frameworks 方式 -> .framework
#use_frameworks!
-> static libraries 方式 -> .a
oc工程的podfile一般是不使用use_frameworks!的,swift和自己創(chuàng)建的lib庫是默認(rèn)有的
7.設(shè)備的CPU架構(gòu)
模擬器:
- 4s~5 : i386
- 5s~6plus : x86_64
真機:
- 3gs~4s : armv7
- 5~5c : armv7s (靜態(tài)庫只要支持了armv7逸贾,就可以跑在armv7s的架構(gòu)上)
- 5s~6plus : arm64
8.Flutter Navigator.pop 報錯 _debugLocked isNotTrue
解決辦法:
1.1.Using .isFirst method:
Navigator.of(context).popUntil((route) => route.isFirst);
1.2. Using defaultRouteName:
Navigator.popUntil(context, ModalRoute.withName(Navigator.defaultRouteName));
9.'_positions.isNotEmpty': ScrollController not attached to any scroll views.
// 滑動卡片
ScrollController _cardScontroller = ScrollController();
void toBottom() {
Future.delayed(Duration(milliseconds: 0), () {
if (_cardScontroller.hasClients){
/// 滑動到底部
_cardScontroller.jumpTo(_cardScontroller.position.maxScrollExtent);
}
});
}
10.Run Configuration Error: Broken configuration due to unavailable plugin or invalid configuration data.
原因分析:
Flutter 插件未找到陨仅,導(dǎo)致無法以Dart方式啟動
解決辦法:
選擇-Preferences-Plugins-> 打開Flutter選項津滞,restart AndroidStudio,即可灼伤。
11.INSTALL_FAILED_USER_RESTRICTED: Install canceled by user Error: ADB exited with exit code 1
直接使用Android studio run 到小米設(shè)備的時候遇到上述問題
原因:小米在mi-ui10 上加了 usb 安裝 apk 的限制触徐。
解決辦法:
- 設(shè)置==》更多設(shè)置==》開發(fā)者選項》USB安裝
- 打開即可,注意打開這個要登錄小米賬號才行狐赡。
- 在手機上點擊繼續(xù)安裝即可(第一次安裝需要)
12.Waiting for another flutter command to release the startup lock… 異常解決
cd /Users/xxx/flutter/bin/cache/
刪除 lockfile
文件即可
13.BUILD TARGET url_launcher OF PROJECT Pods WITH CONFIGURATION Debug
報錯明細(xì)
=== BUILD TARGET url_launcher OF PROJECT Pods WITH CONFIGURATION Debug ===
/Users/liyan/software/flutter/.pub-cache/hosted/pub.flutter-io.cn/simple_permissions-0.1.9/ios/Classes/SimplePermissionsPlugin.m:2:9: fatal error: 'simple_permissions/simple_permissions-Swift.h' file not found
#import <simple_permissions/simple_permissions-Swift.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
原因分析
進入flutter_project/ios/,編輯Podfile,添加
use_frameworks!
關(guān)鍵是use_frameworks!
13.數(shù)據(jù)模型解析時無法定位是哪個屬性報錯
原因分析
因為使用了try catch 導(dǎo)致無法具體定位
解決辦法
注釋掉try catch 即可
舉例
'List<dynamic>' is not a subtype of type 'String'
數(shù)據(jù)類型本來是List 撞鹉,你定義成了 String
///獲取匹配成功列表(匹配歷史)()
static Future getPairHistoryList() async {
try {
var r = await httpManager.request2(
'$base/get_pair_list',
isStubApi: true,
);
List<PairEnrollModel> list = [];
r.data['enrolls'].forEach((friend) {
list.add(PairEnrollModel.fromJson(friend));
});
return DaoResponse<List<PairEnrollModel>>(
data: list, code: r.code, message: r.message);
} catch (e) {
print('==========${e.toString()}');
throw DaoException(e);
}
}
14.Failed to open or create the artifact cache lockfile
問題描述
Flutter OS Error: Permission denied, errno = 13,
Failed to open or create the artifact cache lockfile
問題分析
flutter lockfile 路徑?jīng)]有權(quán)限,需要給他制定權(quán)限
執(zhí)行以下命令
sudo chmod -R 755 /Users/hujintao/flutter/bin/cache/lockfile
# 并且刪除掉 lockfie文件,重啟即可
rm -r ./lockfile