當前位置:首頁 » 編程軟體 » flutter編譯apk大

flutter編譯apk大

發布時間: 2022-10-23 06:40:47

A. Android studio flutter 沒有找到build apk,請問怎麼設置

不需要設置,默認都會在根目錄下的build文件夾下,具體的路徑如下圖所示

一般情況下,你直接使用AS運行時,會生成debug版本,不會生成release版本,需要手動執行flutter run --release就可以出現release文件了。

希望可以幫到您!

B. Flutter 的Android 、iOS 打包

Flutter 項目雖說是跨平台項目,但是項目的名稱還是需要在不同的平台設置,不同平台的設置位置是:
1、 Android 項目名字配置是在 android/app/src/main/AndroidManifest.xml 文件中的 application 下的 android:label 。如下圖所示:

2、 iOS 項目名字配置是在 ios/Runner/Info.plist 文件中的 dict 下的 <key>CFBundleName</key> <string>testapp</string> 。如下圖所示:

Flutter 項目雖說是跨平台項目,但是項目的 Logo 圖標還是需要在不同的平台設置,不同平台的設置位置是:
1、 Android 項目 Logo 配置是在圖片放置在 android/app/src/main/res 下的對應目錄下:
mipmap-mdpi : 48 _ 48
mipmap-hdpi : 72 _ 72
mipmap-xhdpi :96 _ 96
mipmap-xxhdpi :144 _ 144
mipmap-xxxhdpi :192 * 192。如下圖所示:

然後,在 android/app/src/main/AndroidManifest.xml 路徑下的 AndroidManifest.xml 文件中的 android:icon 。如下圖所示:

2、 iOS 項目 Logo 的配置是在 ios/Runner/Assets.xcassets/AppIcon.appiconset 文件下,直接更換圖片,名字不要改動 。如下圖所示:

1、使用 cd 指令進入項目(testapp)的根目錄(方便後面操作),如下圖所示:

填寫對應的值,如下圖所示:

1、 build.gradle 文件的位置,如下圖所示:

2、在 build.gradle 中配置 key.propreties 的全局變數,

如下圖所示:

3、 build.gradle 文件中進行簽名配置。

如下圖所示:

注意: buildTypes 中的 signingConfig signingConfigs.debug 可以變更為 signingConfig signingConfigs.release ,這樣在打包的時候,直接可以 flutter build apk ,否則就執行 flutter build apk --release 。如圖所示:

1、 cd 進入功能(testapp) 的根目錄,如下圖所示:

2、執行 flutter build apk 指令,如下圖所示:

我們打包成功, 生成的 apk 包在 build/app/outputs/apk/release/app-release.apk 目錄下,如下圖所示:

1、將真機通過 USB 鏈接到電腦上,如下圖所示:

2、然後,在項目的根目錄執行 flutter install , 如果出現電腦同時有多個設備時,就執行 flutter install -d deviceid 。如下圖所示:

3、設備的安裝過程如下:

1、必須一個 Xcode 開發工具
2、如果是 Window 的電腦,請安裝 Mac 虛擬系統,進行安裝 Xcode .

1、打開目錄下的 Runner.xcworkspace 工程。
如下圖所示:

2、在 ios 工程中配置 Signing & Capabilities , 如下圖所示:

1、進入項目的根目錄
2、打包指令 flutter build ios --release
如圖所示:

3、使用 Xcode 工具進行打包
如圖所示:

注意:進行該步驟,必須執行 flutter build ios --release 否則會報錯。
打包成功,如下圖所示:

C. flutter 提示Unsupported Android Plugin version: 4.2.2

Unsupported Android Plugin version: 4.2.2 看到這個提示著實頭疼,不支持版本,那怎麼辦,降級吧,改為了4.0.2,還是同樣的提示,這就怪了

在StackoverFlow上有這樣一個說法,說是這是由於安卓添加了proctFlavors來設置多渠道打包,看到這里,去看自己工程果不其然,我也添加了這個

解決

1、若是使用AndriodStudio調試flutter工程需要在Run--Editd Configuration--選中左側main文件--在Build flavor處添加一個在proctFlavors內部定義的渠道比如huawei,點擊OK,重啟IDE,此時發現問題解決了

2、若是使用VSCode調試flutter工程 需要在launch.json設置新的launch配置具體
其中huawei即為proctFlavors中設置的某個渠道 此時我們調試會多一個huawei的選項,安卓使用該選項調試即可

同時若是打包需要使用
flutter build apk --flavor huawei
run需要使用
flutter run --flavor huawei

D. Flutter Android打包基本配置及包體積優化

https://github.com/saucxs/full_stack_knowledge_list/blob/master/article/flutter/flutter_build_apk.md

E. 【百度地圖篇】1.Flutter+百度Sdk實現地圖功能 & 百度地圖顯示網格問題

我是初學者小白,所以很多看法不深,理解也不夠透徹。但是很適合小白們一起從低角度往高處探索。文中有錯誤的,感謝指正,一起進步。

趁著假期做一個Flutter的地圖功能,因為後端選用了網路地圖,所以前端沒得挑。找了遍插件,並沒有現成可用的。(不過發現了網路官方也自開發Flutter插件,目前功能只有一個獲取本地位置信息,後期會繼續增加吧?很期待!)

參考帖子: https://blog.csdn.net/sjm19901003/article/details/53128375

這個實際上跟功能之間沒太大關系,只是我按照個人摸索的過程來寫。

當對一個「領域/知識塊」完全不懂的時候,360°的方向都不確定的話。先了解基礎概念,有利於你確定自己的摸索方向。

參考帖子: https://www.jianshu.com/p/742b15d38404

中間我跳過了幾十,上百個帖子的摸索過程。這個才是關鍵能夠真正做事的參考。

因為網路的sdk還算是很完善的,所以一旦出問題,都會有對應的報錯提示。

我是使用flutter插件:permission_handler,來解決安卓的動態授權問題,用法簡單而且設計合理。

這個錯誤直接來看,就是簽名有問題。怎麼查看SHA1碼和包名,這里不多說,網上有極其多的方法,網路Sdk開發指南里也有。沒那麼復雜,也沒那麼麻煩。按照流程操作就是對的。
實在不放心?跟我一樣,flutter打包後,把apk反過來解SHA1碼不就行了?

參考帖子: https://www.daimajiaoliu.com/daima/4858f130f900409#heading-1

紅色框框基本就是帖子講解的那樣。

藍色框框見下圖:release標簽里好像是自己設置了。所以debug標簽裡面,箭頭指向的位置,是我多設置的一個參數。

uid: -1 appid -1 msg: httpsPost failed,IOException:Unable to resolve host "api.map..com": No address associated with hostname

這一步我是哭笑不得,一開始老是和問題(2)混淆,導致浪費很多時間。仔細閱讀後,發現是不能連接到「api.map..com」。

我打開模擬器的chrome瀏覽器,發現不能上網。查看手機的dns是10.0.2.3(默認的),和家裡wifi不一樣,所以不能上網也正常,之前居然沒發現這個問題!!!

終端執行:adb shell  和  getprop,就可以查看所有的屬性參數了。(window小夥伴自行網路,這個沒多大差別。如果你有多個設備,記得自己選好設備。)

在裡面找到這一項,就是你的dns參數。有些人是net.dns1,我的是net.eth0.dns1。這個沒關系,只是等下指令 稍微改動 就行。

修改dns指令:setprop net.eth0.dns1 192.168.2.1

後面的192.168.2.1是我自己的dns,這個根據自己的情況來填寫。不懂的網路下怎麼查看自己的dns。

雖然提示設置失敗,但是回到模擬器一看,地圖已經顯示出來了。

嘿嘿,在flutter設定多大的區域,地圖就是多大的區域。用起來就很方便了。

過程十分痛苦,因為對flutter不是很熟悉,對Android原生更是了解很少。所以自己就像突然不能講話,被丟到一個陌生的環境,卻要我去找一個人。所以細心很重要,一定要看清楚錯誤提示,不要錯過每一個細節和可能性。

幸好最後解決了問題,開心~

其實如果你仔細閱讀過網路官方的文檔,會發現裡面有關於 地圖的生命周期管理 。然後在這裡面沒有提及到,這一點雖然沒提,但不可或缺,小夥伴就自行思考吧。

最後還有一點,其實我的初衷是想實現一個網路地圖的plugin,但是苦於能力有限,對Android的不熟悉,最後折戟。我不得已另起項目,然後重新實現地圖sdk接入。經過這次對於這些有更多更全面的認知後,有空會再次研究flutter 插件的開發,共勉,奧利給!!!

F. Flutter 集成ShareSDK分享功能

項目分享中需要用到這兩項,需要到官網進行注冊。

下面是官網的官方文檔:

http://www.mob.com/wiki/detailed?wiki=ShareSDK_for_Flutter&id=14

根據官網指示,在pubspec.yaml文件中加入下面依賴

dependencies:

  sharesdk_plugin:

安卓的mobsdk.gradle客服說是可以自動生成,也有存在部分未自動生成,所以未自動生成需要手動添加,然後再重新自定義編輯。具體可以直接挪官網demo的文件。

另外手動添mobsdk.gradle文件後,需要在gradle文件中添加mobsdk.gradle的引用

apply from:'../MobSDK.gradle'(在android{}之外添加)

此外,ios的 sharesdk_plugin.podspec會自動生成,就照著官網編輯即可,到了這步就算是sdk的成功引用了, 。

1.需要打包簽名,不然微信等部分應用分享失敗。

2.flutter簽名沒有快捷方式了,需要用命令來生成,具體網路吧!

3.打包,在命令行flutter  build apk,會在項目下/build/app/outputs/apk/release/下。

    通過cd到項目,運行adb install <apk的路徑>的方式,進行測試。

G. flutter從WIN10轉移到MAC生成APK失敗

項目在WIN10上生成apk沒問題,到mac出問題了,可是android sdk也安裝完成的。

運行flutter build apk
提示以下錯誤

解決:
只需輸入flutter clean

清理干凈之後,再build就行了,成功
flutter build apk

H. flutter-android打包

android打包教程:
1、在AndroidManifest中確定app的名字:

2、在app/build.gradle中設置安卓兼容版本targetSdkVersion和最低版本minSdkVersion,還有編譯版本compileSdkVersion,還有設置包名applicationId,一般不用設置,除非你是要變更

4、添加啟動圖標,圖標資源文件的位置如下:

看到這個文件的時候,就說明創建證書成功了
6、配置項目證書
在android目錄下新建一個file文件key.properties,然後填寫證書的信息如下:

7、啟用混淆
在app路徑中添加proguard-rules.pro文件(這個網路下就好了)
8、構建flutter build apk

I. flutter如何進行icloud

flutter用一個插件進行icloud。
拓展資料:為何flutter構建的App體積較大?
細心的開發者會發現flutter構建的App體積比native的大一些,是什麼原因造成App體積大呢?
其實flutter 在release時App體積和native的大小差不多,而debug時體積通常會大。debug版本體積較大是為了Hot reload和快速編譯。如果有flutter開發經驗的朋友都體驗過,如果您修改一下App的背景顏色,只需save一下就可以立刻看到修改後效果。我稱之為「像藝術家一樣在創造App」,因此為了實現這些目標,提高開發的效率,debug將佔用全部資源。而當我們構建release版時,flutter又會採用AOT策略,提高App運行效率,release版只打包必需的資源,因而體積又會減少。
另外,flutter團隊也一直在尋找減小程序大小的方法。

J. flutter 反編譯

>You are building a fat APK that includes binaries for android-arm, android-arm64.

>If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to rece the APK size.

>    To generate an app bundle, run:

>        flutter build appbundle --target-platform android-arm,android-arm64

>        Learn more on: https://developer.android.com/guide/app-bundle

>    To split the APKs per ABI, run:

>        flutter build apk --target-platform android-arm,android-arm64 --split-per-abi

>        Learn more on:  https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split

>Initializing gradle...                                              2.3s

>Resolving dependencies...                                          14.2s

>Running Gradle task 'assembleRelease'...                                                  ע: E:\work_tool\flutter\.pub-cache\hosted\pub.flutter-io.cn\connectivity-0.4.4\android\src\main\java\io\flutter\plugins\connectivity\ConnectivityPlugin.javaʹ�û򸲸����ѹ�ʱ�� API��

>ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:deprecation ���±��롣

>ע: E:\work_tool\flutter\.pub-cache\hosted\pub.flutter-io.cn\url_launcher-5.1.3\android\src\main\java\io\flutter\plugins\urllauncher\WebViewActivity.javaʹ

>�û򸲸����ѹ�ʱ�� API��

>ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:deprecation ���±��롣

>Calling mockable JAR artifact transform to create file: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\android.jar\\android.jar with input E:\work_tool\sdk\android-sdk-windows\platforms\android-28\android.jar

>Calling mockable JAR artifact transform to create file: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\android.jar\\android.jar with input E:\work_tool\sdk\android-sdk-windows\platforms\android-27\android.jar

>Request to incrementing alive workforce from 0. Current workforce (dead or alive) 0

>thread-pool size=4

>ProGuard, version 6.0.3

>Reading input...

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\flutter.jar\\jetified-flutter.jar] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\app\intermediates\flutter\release\libs.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\localbroadcastmanager-1.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\work-runtime-2.1.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\fragment-1.1.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\room-runtime-2.1.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\room-runtime-2.1.0.aar\\jars\libs\room-common-java8-2.1.0.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\viewpager-1.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\loader-1.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\activity-1.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\customview-1.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\core-1.1.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\versionedparcelable-1.1.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\moles-2\files-2.1\androidx.collection\collection\1.1.0\\collection-1.1.0.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-livedata-2.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-livedata-core-2.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\core-runtime-2.0.1.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\moles-2\files-2.1\androidx.room\room-common\2.1.0\\room-common-2.1.0.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\sqlite-framework-2.0.1.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\sqlite-2.0.1.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-service-2.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-runtime-2.1.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-viewmodel-2.1.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\savedstate-1.0.0.aar\\jars\classes.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\moles-2\files-2.1\androidx.lifecycle\lifecycle-common\2.1.0\\lifecycle-common-2.1.0.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\moles-2\files-2.1\androidx.arch.core\core-common\2.1.0\\core-common-2.1.0.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\moles-2\files-2.1\androidx.annotation\annotation\1.1.0\\annotation-1.1.0.jar] (filtered)

>Reading program jar [C:\Users\Administrator\.gradle\caches\moles-2\files-2.1\com.google.guava\listenablefuture\1.0\\listenablefuture-1.0.jar] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\flutter_downloader\intermediates\intermediate-jars\release\classes.jar] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\shared_preferences\intermediates\intermediate-jars\release\classes.jar] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\url_launcher\intermediates\intermediate-jars\release\classes.jar] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\sqflite\intermediates\intermediate-jars\release\classes.jar] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\connectivity\intermediates\intermediate-jars\release\classes.jar] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\path_provider\intermediates\intermediate-jars\release\classes.jar] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\package_info\intermediates\intermediate-jars\release\classes.jar] (filtered)

>Reading program directory [F:\dartSpace\flutter\jiddspace\nfc\build\app\intermediates\javac\release\compileReleaseJavaWithJavac\classes] (filtered)

>Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\app\intermediates\transforms\mergeJavaRes\release\0.jar] (filtered)

>Reading library jar [C:\Users\Administrator\.gradle\caches\moles-2\files-2.1\androidx.annotation\annotation\1.0.0\\annotation-1.0.0.jar] (filtered)

>Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\android.jar]

>Reading library jar [E:\work_tool\sdk\android-sdk-windows\build-tools\28.0.3\core-lambda-stubs.jar]

>Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\optional\org.apache.http.legacy.jar]

>Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\optional\android.test.mock.jar]

>Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\optional\android.test.base.jar]

>Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\optional\android.test.runner.jar]

>Initializing...

>Warning: io.flutter.embedding.android.FlutterView: can't find referenced method 'android.graphics.Insets getSystemGestureInsets()' in library class android.view.WindowInsets

>Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.view.FlutterView: can't find referenced method 'android.graphics.Insets getSystemGestureInsets()' in library class android.view.WindowInsets

>Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

>Note: io.flutter.view.AccessibilityViewEmbedder$ReflectionAccessors: can't find dynamically referenced class android.util.LongArray

>Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

>Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

>Note: there were 1 unresolved dynamic references to classes or interfaces.

>      You should check if you need to specify additional program jars.

>      (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)

>Warning: Exception while processing task java.io.IOException: Please correct the above warnings first.

>Thread(Tasks limiter_1): destruction

>Warning: there were 12 unresolved references to classes or interfaces.

>        You may need to add missing library jars or update their versions.

>        If your code works fine without the missing classes, you can suppress

>        the warnings with '-dontwarn' options.

>        (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)

>Warning: there were 2 unresolved references to library class members.

>        You probably need to update the library versions.

>        (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)

>

>FAILURE: Build failed with an exception.

>

>* What went wrong:

>Execution failed for task ':app:'.

>> Job failed, see logs for details

>

>* Try:

>Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

>

>* Get more help at https://help.gradle.org

>

>BUILD FAILED in 4m 23s

>Running Gradle task 'assembleRelease'...

>Running Gradle task 'assembleRelease'... Done                    264.4s (!)

>*******************************************************************************************

>The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.

>See https://goo.gl/CP92wY for more information on the problem and how to fix it.

>*******************************************************************************************

>Gradle task assembleRelease failed with exit code 1

熱點內容
sql存儲過程命令 發布:2025-05-16 13:17:54 瀏覽:145
用紙做解壓小玩具西瓜 發布:2025-05-16 13:04:09 瀏覽:935
區域網xp無法訪問win7 發布:2025-05-16 13:03:58 瀏覽:942
油卡如何修改密碼 發布:2025-05-16 13:00:35 瀏覽:901
安卓手機如何拼照片 發布:2025-05-16 12:58:23 瀏覽:374
深入淺出python 發布:2025-05-16 12:56:52 瀏覽:655
國二c語言vc2010怎麼編譯運行 發布:2025-05-16 12:53:49 瀏覽:424
華為熱點哪裡看密碼 發布:2025-05-16 12:53:44 瀏覽:515
新手如何用java寫安卓app 發布:2025-05-16 12:53:07 瀏覽:402
虛榮掛腳本 發布:2025-05-16 12:50:44 瀏覽:480