Flutter 開發出現的那些 Bugs 和解決方案「持續更新... 」
攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第4天,點選檢視活動詳情
記錄 Flutter
開發過程中遇到的一些問題和相關的解決方案~
1. --no-sound-null-safety 錯誤 on vscode
上面是 VSCode
編輯器中空校驗錯誤。解決方案如下:
```bash // vscode 編輯器專案根目錄中建立檔案 .vscode/launch.json // 新增內容 "args": [ "--no-sound-null-safety" ]
// 完整的檔案程式碼示例 { "configurations":[ { "name": "jimmy flutter demo", "program": "lib/main.dart", "request": "launch", "type": "dart", "args": [ "--no-sound-null-safety" ] } ] }
// 之後重新執行專案即可 ```
2. 設定 flutter_screenutil 報錯
直接引用包 flutter_screenutil
去使用,會報錯使用不了 ScreenUtil().setWidth(width)
等方法。
這個錯誤就是我們並沒有按照官網進行使用。需要根據官網逐步進行。
這裡我使用方式一 -- 在app中使用它一次。
```bash void main() => runApp(MyApp());
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { //填入設計稿中裝置的螢幕尺寸,單位dp return ScreenUtilInit( designSize: const Size(360, 690), minTextAdapt: true, splitScreenMode: true, builder: (context , child) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'First Method', // You can use the library anywhere in the app even in theme theme: ThemeData( primarySwatch: Colors.blue, textTheme: Typography.englishLike2018.apply(fontSizeFactor: 1.sp), ), home: child, ); }, child: const HomePage(title: 'First Method'), ); } } ```
3. 構建安卓應用包出錯
在應用開發完成之後,構建安卓的圖示檔案,可能會出現報錯:
```bash ✗ ERROR: InvalidConfigException Cannot not find minSdk from android/app/build.gradle or android/local.propertiesSpecify minSdk in either android/app/build.gradle or android/local.properties
0 createIconsFromConfig (package:flutter_launcher_icons/main.dart:96:7)
1 createIconsFromArguments (package:flutter_launcher_icons/main.dart:60:7)
2 main (file:///Users/jimmy/Documents/sdk/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.9.3/bin/main.dart:7:26)
3 _delayEntrypointInvocation. (dart:isolate-patch/isolate_patch.dart:295:32)
4 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
```
可以在 android/local.properties
檔案中新增內容:
bash
flutter.versionName=1.0.0
flutter.versionCode=1
flutter.minSdkVersion=30
在應用開發完成之後,針對安卓應用去打包,可能會出現報錯:
Execution failed for task ':app:processReleaseMainManifest'. Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared in library
這是因為 minSdkVersion
的問題,我們更改下相關的檔案版本即可:
```bash // 解決方案 // android/app/build.gradle
defaultConfig { // // TODO: Specify your own unique Application ID (http://developer.android.com/studio/build/application-id.html). // applicationId "com.example.jimmy_flutter_demo" // // You can update the following values to match your application needs. // // For more information, see: http://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. // minSdkVersion flutter.minSdkVersion // targetSdkVersion flutter.targetSdkVersion // versionCode flutterVersionCode.toInteger() // versionName flutterVersionName
applicationId "com.example.jimmy_flutter_demo"
minSdkVersion 21 // 更改最小的版本
targetSdkVersion 31
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
```
如果構建成功,你會看到輸出目錄提示內容類似下面:
bash
✓ Built build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk (7.5MB).
目前暫時遇到這些 Bug
,後續會持續更新... 歡迎關注收藏
往期精彩推薦
如果讀者覺得文章還可以,不防一鍵三連:關注➕點贊➕收藏
- 前端開發中 5 個很讚的資源
- 懂點心理學 - 馬太效應
- Flutter 構建一個 todo list 應用
- Dart 知識點 - 資料型別
- Dart 知識點 - 混入 Mixin
- Dart 知識點 - 集合 List, Set, Map
- Flutter - 使用 push(), pop() 和路由進行導航
- Dart 知識點 - 面向物件基礎
- Flutter: Stateful 掛件 vs Stateless 掛件
- Flutter 實現登入 UI
- Dart 知識點 - 抽象類和介面
- 自 2020 年以來全球的開源商業化軟體融資情況
- IstioCon 2022 回顧及錄影、PPT 分享
- 網頁實現 1CM 物理長度
- Flutter 開發出現的那些 Bugs 和解決方案「持續更新... 」
- 仿寫新聞客戶端
- Beyond Istio OSS —— Istio 服務網格的現狀及未來
- 在外企的工作生活「年中總結」
- 如何在 Istio 中整合 SPRIRE?
- Javascript尾遞迴程式設計