發表日期:2019-01 文章編輯:小燈 瀏覽次數:1931
找到項目目錄?/android/app/src/main/res/?
進入該目錄,會看到很多個以mipmap-為前綴文件夾,文件夾名稱的后綴是對應的是APP圖標像素密度:
mdpi ~160dpi? 48 * 48 px
hdpi ~240dpi? 72 * 72 px
xhdpi ~320dpi? 96 * 96 px
xxhdpi ~480dpi144 * 144 px
xxxhdpi ~640dpi? 192 * 192 px
將對應像素圖片放入對應的文件夾中,圖片記得用png格式,安裝的APP會根據對應的屏幕像素密度使用適應尺寸的圖標,但要注意,APP圖標文件最好統一使用同一個名字,方便配置。
打開項目目錄 /android/app/src/main/AndroidManifest.xml
在 application 標簽內:
android:label="first_flutter_app" ? //此屬性為APP安裝到手機上顯示的名稱,支持中文
android:icon="@mipmap/ic_launcher"? //此屬性為APP圖標用到的圖片名稱
//圖片文件不需要輸入格式后綴,使用相同文件名,方便此處配置,因為此處沒有按像素分別配置對應圖片
uses-permission標簽:
此標簽定義APP的系統權限,比如打開麥克風攝像頭、獲取聯系人號碼簿、是否允許上網等,權限有很多,具體請參考官網。
此處默認配置了一個android:name="android.permission.INTERNET"的權限,即允許手機聯網,因為flutter和APP交換數據需要用到這個權限。
終端下輸入命令即可獲?。?/p>
keytool -genkey -v -keystore /home/amor/key.jks -keyalg RSA -keysize 2048 -validity 100000 -alias key
如果報錯找不到keytool,需要先把 java 命令所在目錄添加到 PATH 環境變量中
此時會彈出幾個問題,按要求填寫即可:
注意:如果你存放key的路徑(/home/amor/key.jks)沒有權限的話,是會生成失敗的,所以請先確保路徑權限可寫。
然后到/home/amor/目錄下可以發現多了一個key.jks文件,記?。?/p>
不要把這個jks文件共享給任何人??!
到項目目錄的android文件夾下創建一個名為key.properties的文件,并打開貼入以下代碼:
storePassword=創建KEY時輸入的密鑰庫密碼????//輸入上一步創建KEY時輸入的 密鑰庫 密碼
keyPassword=創建KEY時輸入的密鑰密碼????//輸入上一步創建KEY時輸入的 密鑰 密碼
keyAlias=key
storeFile=/home/amor/key.jks????//key.jks的存放路徑
這個key.properties文件也不要共享出去?。?/p>
打開/android/app/build.gradle文件,在 android { 這一行前面,加入代碼:
defkeystorePropertiesFile=rootProject.file("key.properties")
defkeystoreProperties=newProperties()
keystoreProperties.load(newFileInputStream(keystorePropertiesFile))
把如下代碼:
buildTypes {
?? release {
? ? ?? signingConfig signingConfigs.debug
?? }
}
替換成:
signingConfigs {
?? release {
? ? ?? keyAlias keystoreProperties['keyAlias']
? ? ?? keyPassword keystoreProperties['keyPassword']
? ? ?? storeFile file(keystoreProperties['storeFile'])
? ? ?? storePassword keystoreProperties['storePassword']
?? }
}
buildTypes {
?? release {
? ? ?? signingConfig signingConfigs.release
?? }
}
到defaultConfig中,錄入APPID和版本號:
defaultConfig {
? ? ?? applicationId "com.example.myflutter"? ????//APPID
? ? ?? minSdkVersion 16? ????//可運行應用的最低版本的 Android 平臺,由該平臺的 API 級別標識符指定
? ? ?? targetSdkVersion 27????? //指定運行應用的目標 API 級別。在某些情況下,這允許應用使用在目標 API 級別中定義的清單元素或行為,而不是僅限于使用那些針對最低 API 級別定義的元素或行為。
? ? ?? versionCode 1 ?? ????//內部版本號
? ? ?? versionName "1.0"? ????//對外公布的版本號
? ? ?? testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
?? }
在項目根目錄終端中輸入命令:
flutter build apk
耐心等待執行完畢后你會看到:
Initializing gradle... 5.1s
Resolving dependencies...? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 8.0s
Gradle task 'assembleRelease'...? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Picked up _JAVA_OPTIONS:?-Dawt.useSystemAAFontSettings=gasp? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Gradle task 'assembleRelease'... Done? ? ? ? ? ? ? ? ? ? ?14.0s
Built build/app/outputs/apk/release/app-release.apk (6.0MB).
生成apk成功
然后build/app/outputs/apk/release路徑下,找到生成apk文件,即打包完成了,你也可以在終端輸入命令安裝APP:
flutter install
安裝時,會把原來調試運行安裝的APP卸載掉,重新安裝新的APP
本文參(zhao)考(chao)燃燒的魚丸大大的 flutter筆記5:官方資料搬運-安卓客戶端打包
本文為第一次在 上寫文章,排版很差,請大家見諒?。?!
日期:2018-10 瀏覽次數:7525
日期:2018-12 瀏覽次數:4598
日期:2018-07 瀏覽次數:5115
日期:2018-12 瀏覽次數:4402
日期:2018-09 瀏覽次數:5756
日期:2018-12 瀏覽次數:10181
日期:2018-11 瀏覽次數:5091
日期:2018-07 瀏覽次數:4845
日期:2018-05 瀏覽次數:5098
日期:2018-12 瀏覽次數:4562
日期:2018-10 瀏覽次數:5377
日期:2018-12 瀏覽次數:6438
日期:2018-11 瀏覽次數:4705
日期:2018-08 瀏覽次數:4850
日期:2018-11 瀏覽次數:12938
日期:2018-09 瀏覽次數:5858
日期:2018-12 瀏覽次數:5084
日期:2018-10 瀏覽次數:4423
日期:2018-11 瀏覽次數:4769
日期:2018-12 瀏覽次數:6299
日期:2018-06 瀏覽次數:4249
日期:2018-08 瀏覽次數:5697
日期:2018-10 瀏覽次數:4681
日期:2018-12 瀏覽次數:4792
日期:2018-07 瀏覽次數:4614
日期:2018-12 瀏覽次數:4783
日期:2018-06 瀏覽次數:4623
日期:2018-11 瀏覽次數:4603
日期:2018-12 瀏覽次數:4526
日期:2018-12 瀏覽次數:5507
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.