打包釋出安卓應用主要有5步,
修改android/app/src/main/AndroidManifest.xml
首先通過安卓模式打開項目

然後等待項目加載完成,出現下面情況為加載完成:
如果出現異常可以參考這篇文章:啟動 flutter項目時報Could not find com.android.tools.build:gradle:3.2.1.
然後修改APP對應的名字,也就是在手機桌面顯示的應用名
圖示自定義我們可以修改
mipmap
下面的圖示檔案(建議右鍵
show in explorer
在檔案夾中打開,然後再進行修改)
修改和配置 build.gradle
檔案
build.gradle
打開
app
的
build.gradle
修改相容的安卓版本
:表示編譯時的安卓版本
compileSdkVersion
:表示目标安卓版本
targetSdkVersion
:表示最低相容的安卓版本
minSdkVersion
如果要檢視安卓版本對應的數字的話,可以點選
SDK Manager
進行檢視:
其他字段含義:
簽名APP
建立證書:
點選
Build-->Generate Signed Bundle/APK
選擇
APK
點選下一步:
點選建立一個新的證書:
輸入資訊即可建立證書:
點選OK之後可能會出現報錯,此處忽略即可:
然後點選取消,即可看到我們建立的證書:
建立一個
/android/key.properties
檔案,配置如下内容:
配置build.gradle
打開
build.gradle
檔案,在
android
節點上面添加下面内容:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
如下:
将下面内容
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
替換為:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
效果如下:
開啟混淆
建立
/android/app/proguard-rules.pro
檔案
添加以下規則:
#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
在
build.gradle
檔案的
release
節點下添加:
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
用來啟動混淆配置,
minifyEnabled
表示是否壓縮
建構一個釋出版(release)APK
切換到flutter項目的根目錄,執行
flutter build apk
即可打包成功。
常見問題及解決方法
解決問題 Cause: buildOutput.apkData must not be null
VScode+Flutter 開發繼續踩坑
Flutter打包release版本安卓apk包真機安裝無法請求網絡的解決方法
Flutter中文網:https://flutterchina.club/android-release/