【flutter填坑】使用flutter進(jìn)行Windows開發(fā)

本文將介紹,如何在windows上,使用flutter開發(fā)。
目錄:
一、Windows安裝環(huán)境配置
講述了如何在Windows上搭建flutter環(huán)境及開發(fā)工具
二、為項目創(chuàng)建Windows支持
講述了如何創(chuàng)建包含Windows環(huán)境的flutter項目,以及如何為已有項目添加Windows支持
三、Flutter在Windows上的數(shù)據(jù)庫支持
講述了如何在Windows上使用Flutter的數(shù)據(jù)庫
四、Flutter在Windows上的Webview支持
講述了如何在Windows上使用Flutter的Webview
五、將項目打包成exe安裝包
六、將項目打包時,添加額外的環(huán)境安裝文件,使引導(dǎo)程序自動為用戶安裝

一 Windows安裝環(huán)境配置

想要在Windows桌面平臺使用flutter進(jìn)行開發(fā),首先需要安裝如下的環(huán)境:
flutter sdk
visual studio 2022
另外,本文將采用android studio作為IDE為例

1.flutter sdk安裝

點擊這里跳轉(zhuǎn)到flutter sdk頁面
請使用stable channel中最新版本的安裝包

安裝完成后,我們并沒有完成sdk的配置:

(1)配置系統(tǒng)變量

在此電腦-屬性-高級系統(tǒng)設(shè)置-環(huán)境變量中,打開Path(如果沒有請新建),添加:

你的flutter路徑\bin

例:D:\flutter\bin
這是為了我們能夠在命令行工具中直接使用flutter指令

(2)網(wǎng)絡(luò)環(huán)境配置

考慮到中國的網(wǎng)絡(luò)環(huán)境問題,請進(jìn)行如下配置:
在環(huán)境變量中,新建變量

第一組:
變量名稱:FLUTTER_STORAGE_BASE_URL
變量值:https://storage.flutter-io.cn

第二組:
變量名稱:PUB_HOSTED_URL
變量值:https://pub.flutter-io.cn
(3)gradle環(huán)境配置

考慮到中國的網(wǎng)絡(luò)環(huán)境問題,請進(jìn)行如下配置:
使用文本編輯打開此文件:

你的flutter路徑\packages\flutter_tools\gradle\flutter.gradle

隨后在buildscript標(biāo)簽下,修改repositories的值
默認(rèn)值是

repositories {
    google()
    mavenCentral()
}

修改成:

repositories {
    maven { url 'https://maven.aliyun.com/repository/public' }
    maven { url 'https://maven.aliyun.com/repository/google' } 
    maven { url 'https://maven.aliyun.com/repository/gradle-plugin'} 
    maven { url 'https://maven.aliyun.com/repository/central' } 
    maven { url 'https://maven.aliyun.com/repository/jcenter' } 
}

這里使用的是阿里云的鏡像,想了解請點擊云鏡像說明

2.Visual Studio 2022安裝

請點擊這里安裝Visual Studio 2022注意,Visual Studio和Visual Studio Code不是一個東西
在安裝時候,注意要勾選使用C++的桌面開發(fā)。如果需要開發(fā)webview相關(guān)內(nèi)容,請勾選通用Windows平臺開發(fā)

如果已經(jīng)安裝過Visual Studio,使用以下方式擴(kuò)展安裝內(nèi)容
打開此文件:

C:\Program Files(x86)\Microsoft Visual Studio\Installer\setup.exe

點擊修改,即可進(jìn)入配置頁面。

3.開發(fā)工具Android Studio安裝

本文章使用Android Studio作為開發(fā)IDE,當(dāng)然,也可以選擇其他IDE進(jìn)行開發(fā)。
請點擊這里安裝Android Studio

為Android Studio提供flutter支持:
打開 File-Settings-Plugins,搜索Flutter,安裝插件,搜索Dart,安裝插件
重啟Android Studio后生效

打開Fils-Settings-Appearance&Behavior-System Settings-Android SDK
安裝需要的SDK版本。
在SDK Tools標(biāo)簽下,確保安裝Android SDK Build-Tools, Android SDK Platform-Tools

4.疑難雜癥處理

在完成以上安裝環(huán)境配置后,請打開CMD命令行工具,執(zhí)行

flutter doctor -v

可能遇到的問題:

(1)Visual Studio報錯,CMD中產(chǎn)生大量紅色錯誤提示

錯誤問題:

Bad UTF-8 encoding(U+FFFD;REPLACEMENT CHARATER) found while decoding string

解決方案:
點擊這里下載最新版本vswhere.exe
復(fù)制到以下目錄覆蓋原文件

C:\Program Files(x86)\Microsoft Visual Studio\Installer
(2)Android license問題

解決方案,執(zhí)行:

flutter doctor --android-licenses
(3)Android sdk與jdk配置問題

有些情況下可能想要修改flutter所使用的android sdk路徑,請使用以下命令指定:

flutter config --android-sdk 你的SDK路徑

如果需要升級flutter使用的jdk版本,請升級flutter doctor -v下面輸出的路徑,它和系統(tǒng)中配置的java路徑可能不一樣

執(zhí)行flutter doctor -v,這一項是你的flutter真正使用的jdk
Java binary at: /jdk

二 為項目創(chuàng)建Windows環(huán)境

1.創(chuàng)建支持Windows的新的flutter項目

執(zhí)行

flutter config --enable-windows-desktop

來允許創(chuàng)建windows flutter項目,完成后,在Android Studio中新建項目即可選擇Windows平臺

2.為已經(jīng)存在的flutter項目創(chuàng)建Windows支持

同樣的,先執(zhí)行

flutter config --enable-windows-desktop

隨后,切換到項目所在路徑根目錄下,執(zhí)行

flutter create --platforms=windows .  
 (注意,這里最后有個點 . )

三 Flutter在Windows上的數(shù)據(jù)庫支持

Flutter數(shù)據(jù)庫主要使用sqlite,點擊這里查看sqflite_common_ffi
但是推薦使用Floor框架來簡化開發(fā):
點擊這里查看Floor

這里面有一個問題需要注意,雖然sqflite_common_ffi支持Windows平臺,但是在release環(huán)境下,需要手動安裝sqlite3.dll這個動態(tài)鏈接庫。
如果不手動配置,那么表現(xiàn)現(xiàn)象是,在debug版本中數(shù)據(jù)庫正常,但發(fā)布的版本中數(shù)據(jù)庫無法正常初始化。
Floor本質(zhì)上依賴了sqflite_common_ffi,問題是同樣的。
sqlite3.dll,放在執(zhí)行文件同目錄下即可正常。

四 Flutter在Windows上的Webview支持

Windows上的內(nèi)嵌Webview問題,可以使用Webview2解決,目前已經(jīng)有可使用的插件
webview_windows插件

使用插件需要安裝Webview2 Runtime環(huán)境
Webview2 Runtime環(huán)境
Evergreen Bootstrapper,這是一個下載+安裝的包,打開后會自動下載最小的runtime包安裝
Evergreen Standalone Installer,這是完整的離線安裝包
注意,如果你的軟件使用了Webview2 Runtime,那么你必須保證用戶的電腦上安裝了同樣的環(huán)境,否則Webview功能無法使用。這一點會在后面的打包中提到

Fixed Version,這是一個固定版本的,可以內(nèi)嵌到軟件內(nèi)部的壓縮包。你可以在軟件里嵌入Webview2,這樣可以獨(dú)立于系統(tǒng)中的Webview2存在,軟件會使用你自己的Webview2 Runtime,但是會增加安裝包的體積。

五 將項目打包成exe安裝包

1.為Visual Studio安裝installer project

這里以Visual Studio 2022為例
點擊菜單中的擴(kuò)展-管理擴(kuò)展,搜索installer project,安裝Microsoft Visual Studio Installer Projects 2022
(注意網(wǎng)絡(luò)情況)
安裝完成后,關(guān)閉Visual Studio,會自動執(zhí)行安裝,按步驟完成即可。

2.打開項目中的sln文件

這個文件位置一般是

項目路徑\build\windows\runner\runner.sln
3.創(chuàng)建Setup Project工程

解決方案資源管理器中,右鍵點擊解決方案runner,添加-新建項目
搜索Setup Project,然后按步驟創(chuàng)建即可

4.配置Setup Project工程

在創(chuàng)建完成后,會有三條內(nèi)容,分別是
Application Folder
User's Desktop
User's Programs Menu
首先在Application Folder中,右鍵點擊,添加項目輸出,這里選擇你的主項目名稱。
完成后Visual Studio會為你創(chuàng)建基本的dll庫文件,比如MSVCP140D.dll,VCRUNTIME140D.dll等等,以及你的項目build產(chǎn)生的exe和dll文件。

注意,flutter默認(rèn)會build出存放資源的文件夾,這個需要手動拖拽到Application Folder下面。
此外,還需要手動添加我們自用的一些庫文件,如上文說到的flutter數(shù)據(jù)庫需要的sqlite3.dll等,根據(jù)自己情況添加。

每次修改后,需要右鍵點擊setup工程,并選擇重新生成。
每次生成一個msi文件,包含了所有dll和資源等,以及setup安裝文件,它會對系統(tǒng)環(huán)境進(jìn)行檢測,并考慮為用戶安裝缺失的環(huán)境包(參考六中的配置)。

User's DesktopUser's Programs Menu是配置桌面快捷方式圖標(biāo)和開始菜單快捷方式圖標(biāo),這里暫不贅述,可根據(jù)需要添加。

六 將項目打包時,添加額外的環(huán)境安裝文件,使引導(dǎo)程序自動為用戶安裝

如果你的軟件需要其他的環(huán)境,如.net framework,webview2環(huán)境等,需要添加到打包中,使用戶安裝軟件時候時候自動為用戶安裝環(huán)境。
右鍵點擊解決方案資源管理器中的setup工程,打開屬性-Prerequisites。
Visual Studio中自帶了一些可以使用的環(huán)境,包括.net framework, .net runtime等,其中也包括WebView2。

這里有三種方案:
1.從組件供應(yīng)商的網(wǎng)站上下載系統(tǒng)必備組件
2.從與我的程序相同的位置下載系統(tǒng)必備組件
3.從下列位置下載系統(tǒng)必備組件

如果使用1或3,那么就可以直接確定結(jié)束。
它的意思是,用戶在安裝時候,需要去下載這些環(huán)境進(jìn)行安裝,安裝程序會進(jìn)行引導(dǎo)。
3的意思是,將這些需要的環(huán)境包配置在自己的服務(wù)器上,并在這里指定。而1是從供應(yīng)商網(wǎng)站上下載。

如果選擇2,它表示我們提供好安裝包,安裝過程自動使用我們提供的環(huán)境安裝包。我們需要在本地下載好安裝包,并將它配置好,需要配置在

C:\Program Files(x86)\Microsoft SDKs\ClickOnce Bootstrapper\Package

具體配置什么,需要看自己的需求。
比如配置 .net framework 4.7.2,需要在

C:\Program Files(x86)\Microsoft SDKs\ClickOnce Bootstrapper\Package\DotNetFX472

路徑下,放置.net framework 4.7.2的安裝包。
DotNetFX472根目錄放置安裝包以后,還需要在需要的語言下,比如zh-Hans中放置語言包。它的用處是在安裝時候為用戶提供對應(yīng)語言的協(xié)議和描述。
語言包下載路徑可以在各自目錄的Package文件中搜索包含http://go.microsoft.com/fwlink的類似鏈接中下載。

對于Webview2 Runtime環(huán)境,如果想使用以上方式,需要手動創(chuàng)建WebViewRuntime文件夾,并在其中放入MicrosoftEdgeWebview2Setup。
同時需要提供Product,package和eula文件
可以參考官方給出的實例,(官方實例可以直接使用)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容