天天看點

Android Studio打包釋出Flutter安卓應用

打包釋出安卓應用主要有5步,

修改android/app/src/main/AndroidManifest.xml

首先通過安卓模式打開項目

Android Studio打包釋出Flutter安卓應用

然後等待項目加載完成,出現下面情況為加載完成:

Android Studio打包釋出Flutter安卓應用

如果出現異常可以參考這篇文章:啟動 flutter項目時報Could not find com.android.tools.build:gradle:3.2.1.

然後修改APP對應的名字,也就是在手機桌面顯示的應用名

Android Studio打包釋出Flutter安卓應用

圖示自定義我們可以修改

mipmap

下面的圖示檔案(建議右鍵

show in explorer

在檔案夾中打開,然後再進行修改)

Android Studio打包釋出Flutter安卓應用

修改和配置

build.gradle

檔案

打開

app

build.gradle

修改相容的安卓版本

Android Studio打包釋出Flutter安卓應用

compileSdkVersion

:表示編譯時的安卓版本

targetSdkVersion

:表示目标安卓版本

minSdkVersion

:表示最低相容的安卓版本

如果要檢視安卓版本對應的數字的話,可以點選

SDK Manager

進行檢視:

Android Studio打包釋出Flutter安卓應用

其他字段含義:

Android Studio打包釋出Flutter安卓應用

簽名APP

建立證書:

點選

Build-->Generate Signed Bundle/APK

Android Studio打包釋出Flutter安卓應用

選擇

APK

點選下一步:

Android Studio打包釋出Flutter安卓應用

點選建立一個新的證書:

Android Studio打包釋出Flutter安卓應用

輸入資訊即可建立證書:

Android Studio打包釋出Flutter安卓應用

點選OK之後可能會出現報錯,此處忽略即可:

Android Studio打包釋出Flutter安卓應用

然後點選取消,即可看到我們建立的證書:

Android Studio打包釋出Flutter安卓應用

建立一個

/android/key.properties

檔案,配置如下内容:

Android Studio打包釋出Flutter安卓應用
配置build.gradle

打開

build.gradle

檔案,在

android

節點上面添加下面内容:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
           

如下:

Android Studio打包釋出Flutter安卓應用

将下面内容

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 Studio打包釋出Flutter安卓應用
開啟混淆

建立

/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.**  { *; }
           
Android Studio打包釋出Flutter安卓應用

build.gradle

檔案的

release

節點下添加:

minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
           

用來啟動混淆配置,

minifyEnabled

表示是否壓縮

Android Studio打包釋出Flutter安卓應用

建構一個釋出版(release)APK

切換到flutter項目的根目錄,執行

flutter build apk

即可打包成功。

常見問題及解決方法

解決問題 Cause: buildOutput.apkData must not be null

VScode+Flutter 開發繼續踩坑

Flutter打包release版本安卓apk包真機安裝無法請求網絡的解決方法

Flutter中文網:https://flutterchina.club/android-release/