Die Download-Größe meines App-Bundles im Google PlayStore beträgt ca. 23 MB :
Aber warum steigt die App-Größe auf der Festplatte nach der Installation erheblich auf 83 MB ?
Irgendeine Idee, warum dies passiert, weil:
1) Flatters Assets-Datei (Bilder, Ton & Schriftarten) für Projekte mit nur ca. 11 MB
2) Größe des Flutter-Quellcodes (.dart) auf der Festplatte nur 1,4 MB
3) Android Native Resource / Symbol (Res) nur ca. 800 KB
In Bezug auf das Flatter-Plugin verwende ich unten:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
angles: ^1.0.1
app_settings: ^1.0.5
archive: ^2.0.8
cached_network_image: ^1.1.1
carousel_slider: ^1.3.0
cron: ^0.2.1
crypto: ^2.0.6
cupertino_icons: ^0.1.2
date_format: ^1.0.5
device_id: ^0.1.3
dio: ^2.0.0
easy_alert: ^0.0.2
localstorage: ^2.0.0
audioplayers: ^0.13.1
path_provider: ^1.1.0
esys_flutter_share: ^1.0.2
flutter_compass: ^0.3.2
flutter_html: ^0.9.6
flutter_local_notifications: ^0.8.2
flutter_offline: ^0.2.4+1
flutter_swiper: ^1.1.6
flutter_xlider: ^2.4.5
font_awesome_flutter: ^8.2.0
geolocator: ^5.0.1
google_maps_flutter: ^0.2.0
google_sign_in: ^4.0.1+1
http: ^0.12.0+2
libcalendar: ^0.2.0
location : ^2.3.0
numberpicker: ^1.0.0
pigment: ^1.0.3
rxdart: ^0.21.0
shared_preferences: ^0.5.1+1
shimmer: ^1.0.0
unicode: ^0.1.0
url_launcher: ^5.0.2
validate: ^1.6.0
vibrate: ^0.0.4
after_layout: ^1.0.7+2
draggable_scrollbar: ^0.0.4
flutter_web_browser: ^0.11.0
flutter_youtube: ^1.1.6
google_api_availability: ^2.0.1
indexed_list_view: ^0.0.5
permission_handler: ^3.1.0
queries: ^0.1.4
rect_getter: ^0.0.1
scroll_to_index: any
sqflite: ^1.1.5
tuple: ^1.0.2
xml2json: ^3.0.3
firebase_messaging: ^5.1.6
firebase_analytics: ^3.0.2
firebase_core: ^0.4.0+3
firebase_auth: ^0.11.1+6
firebase_admob: ^0.9.0+1
firebase_in_app_messaging: ^0.0.1+3
superellipse_shape: ^0.1.5
device_info: ^0.4.0+2
in_app_purchase: ^0.2.0+6
sentry: any
system_info: ^0.1.1
highlighter_coachmark: ^0.0.3
volume: ^0.1.0
admob_flutter: ^0.3.2
bubble_tab_indicator: "^0.1.4"
material_design_icons_flutter: ^3.0.3289
scoped_model: ^1.0.1
flutter_slidable: ^0.4.9
kiwi: ^0.1.0
flutter_markdown: ^0.2.0
flutter_downloader: ^1.2.1
native_ads: ^0.2.0
onesignal_flutter: ^2.0.0
Irgendeine Idee Wie man die Größe der App reduziert ?
Vielen Dank im Voraus...
AKTUALISIEREN
Wenn ich minifyEnabled = true
und shrinkResources = true
( wie von Ravinder Kumar vorgeschlagen ) in meinem build.gradle
einstelle, wird ein sehr langer Fehler generiert. Hier ist das Protokoll:
== Bauen für Android ==
... (Ich habe das Fehlerprotokoll wegen sehr langer, aber vollständiger Protokolle hier abgeschnitten: https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl=0 )
Hinweis: Die Konfiguration behält den Einstiegspunkt 'io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Delegate $ 3 {void onComplete (com.google.android.gms.tasks.Task); } ', aber nicht die Deskriptorklasse' com.google.android.gms.tasks.Task '
Hinweis: Die Konfiguration behält den Einstiegspunkt 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromSkuDetail (com.android.billingclient.api.SkuDetails); } ', aber nicht die Deskriptorklasse' com.android.billingclient.api.SkuDetails '
Hinweis: Die Konfiguration behält den Einstiegspunkt 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchase (com.android.billingclient.api.Purchase); } ', aber nicht die Deskriptorklasse' com.android.billingclient.api.Purchase '
Hinweis: Die Konfiguration behält den Einstiegspunkt 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchasesResult (com.android.billingclient.api.Purchase $ PurchasesResult); } ', aber nicht die Deskriptorklasse' com.android.billingclient.api.Purchase $ PurchasesResult '
Hinweis: Es gab 7 Verweise auf unbekannte Klassen.
You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Hinweis: Es gab 3 Verweise auf unbekannte Klassenmitglieder.
You should check your configuration for typos.
Hinweis: Es gab 242 nicht verwaltete Deskriptorklassen in gehaltenen Klassenmitgliedern.
You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Hinweis: Es gab 68 ungelöste dynamische Verweise auf Klassen oder Schnittstellen.
You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Warnung: Es gab 25 ungelöste Verweise auf Klassen oder Schnittstellen.
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)
Warnung: Es gab 2 ungelöste Verweise auf Mitglieder der Bibliotheksklasse.
You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Warnung: Ausnahme bei der Verarbeitung der Aufgabe java.io.IOException: Bitte korrigieren Sie zuerst die obigen Warnungen.
Thread (Tasks limiter_1): Zerstörung Gradle-Task 'bundleRelease' ausführen ... 690.7s (!)
********************************************************** **********************> ******************* Der Gradle-Fehler kann auf zurückzuführen sein AndroidX> Inkompatibilitäten in dieser Flutter-App. Weitere Informationen zum Problem und zur Behebung finden Sie unter "https: //goo.gl / CP92wY". ********************************************************** **********************> ****************** Gradle Task BundleRelease fehlgeschlagen mit Exit-Code 1
Build fehlgeschlagen: | Fehler beim Erstellen für Android
Übrigens, unten ist meine 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.** { *; }
-keep class com.baseflow.** { *; }
#-keep class com.chartboost.** { *; }
-dontwarn com.google.common.base.**
-keep class com.google.common.base.** {*;}
-dontwarn com.google.errorprone.annotations.**
-keep class com.google.errorprone.annotations.** {*;}
-dontwarn com.google.j2objc.annotations.**
-keep class com.google.j2objc.annotations.** { *; }
-dontwarn java.lang.ClassValue
-keep class java.lang.ClassValue { *; }
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; }