Flutter: Unterstützt App-Bundles mit 32-Bit- und 64-Bit-Binärdateien darin

Erstellt am 1. Mai 2019  ·  194Kommentare  ·  Quelle: flutter/flutter

Warnung

Diese Version entspricht nicht der 64-Bit-Anforderung von Play.

Die folgenden APKs oder App Bundles sind für 64-Bit-Geräte verfügbar, haben jedoch nur nativen 32-Bit-Code: {version code}.

Ab dem 1. August 2019 müssen alle Releases die 64-Bit-Anforderung von Play erfüllen.

Fügen Sie nativen 64-Bit-Code zusätzlich zu nativem 32-Bit-Code in Ihre App ein. Verwenden Sie das Android App Bundle-Veröffentlichungsformat, um automatisch sicherzustellen, dass jede Gerätearchitektur nur den nativen Code erhält, den sie benötigt. Erfahren Sie mehr

Diese Warnung wird angezeigt, wenn versucht wird, seit heute ein von aab erstelltes flutter build appbundle im Play Store zu veröffentlichen .

Muss ich mir Sorgen machen oder wird Flutter das automatisch beheben, dh ist die Lösung bereits geplant?

crowd engine waiting for PR to land (fixed)

Hilfreichster Kommentar

Hallo Flutter-Team,
Ich möchte diesen Themenstatus betonen. Aus meiner Sicht gibt es zwei schwerwiegende Probleme:

  • Die aktuelle stabile Flatter-Version 1.7.8+hotfix.3 keine stabilen APKs - zumindest split-per-abi funktioniert nicht wie es sollte - arm32 hat ein Regressionsproblem und kann auf einigen arm32-Geräten nicht ausgeführt werden . Es ist noch nicht klar, wann dies behoben wird;
  • 1. August Deadline - in etwa einer Woche werden wir als Entwickler weder aktualisieren noch neue Flatter-Apps im Google Play Store veröffentlichen können - so einfach ist das. In Anbetracht des aktuellen Problems mit der Flatter-Version (wie oben erwähnt) und der verbleibenden Zeit halte ich es nicht für machbar, den Fix vor Ende des Monats im stabilen Kanal zu erwarten (es sei denn, jemand von euch hat einen Zauberstab :- ))

In Anbetracht der beiden oben genannten Probleme möchte ich folgenden Notfallplan vorschlagen, welcher IMO uns als Entwickler am besten dienen würde:

  • Rollback des stabilen Flatterkanals auf seine Version vor dem hotfix.2
  • Verschieben Sie die Frist für den 1. August um einige Monate – ich verstehe, dass dies eine gewisse Eskalation des Problems erfordert, aber ich hoffe, Sie werden verstehen, wie schwerwiegende Auswirkungen es haben könnte, wenn die Entwickler aufgrund von Problemen mit dem Flatter-Framework nach dem 1. August keine zuverlässige Flatter-App veröffentlichen können.

Ich kann nur in meinem Namen sprechen, aber ich habe Kunden mit Verträgen und habe mich entschieden, von React Native zu Flutter zu wechseln, da ich der Meinung war, dass Google ihre eigenen Produkte besser unterstützen würde. Ich habe Projekte im Gange und Anträge zu unterstützen.
Jetzt befinde ich mich in einem absurden Fall, wenn Google mich zwingt, die 64-Bit-APK-Version zu veröffentlichen und gleichzeitig Google mir nicht das Tool dazu zur Verfügung stellt (und ja, ich weiß, dass das Flutter-Team nicht dasselbe ist wie Google Play Team, aber wo ich herkomme - Sie sind dieselbe Geschäftseinheit).
Wenn Google nicht rechtzeitig liefert, wird dies zu einem starken Zurückdrängen von Flutter führen, da jeder Tag nach dem 1. August die Glaubwürdigkeit von Framework schwindet.
Ich entschuldige mich, wenn meine Worte etwas stärker klingen, ich hoffe nur, dass Sie sich im Moment in meine Lage versetzen können.

Jeder - bitte stimmen Sie darüber ab, und wir hoffen, dass unsere Stimme gehört wird!

Alle 194 Kommentare

Nein

Ich hatte die gleiche Warnung. Könnte jemand aus dem Flutter-Team das kommentieren oder erklären, und was können wir tun, um sicherzustellen, dass das mit flutter build appbundle --release generierte Appbundle auch den 64-Bit-Code enthält. @zoechi Kannst du uns etwas dazu sagen?

Das sehe ich auch. Hier ist ein Screenshot:
Screen Shot 2019-05-02 at 12 25 57 PM

Und die Dokumentation "mehr erfahren" ist hier: https://developer.android.com/distribute/best-practices/develop/64-bit

Ich freue mich auf eine Antwort vom Flutter-Team.

Diese Warnmeldung habe ich heute auch bekommen.

Gleiches Problem hier.

ich auch

ich auch

Gibt es dafür schon eine Lösung?

Schau dir das an: https://github.com/flutter/flutter/issues/18494#issuecomment -477502287

Bei mir hat es funktioniert.

Die Schaltfläche [Start Rollout to Internal Test] ist auf der App-Release-Seite der Google Play Console deaktiviert (der Bildschirm, auf dem die obige 64-Bit-Warnmeldung angezeigt wird).

Die 64-Bit-Bundle-Anforderung ist jetzt ein Showstopper für Flatterprojekte.

/cc @mklim @cbracken

Es scheint, dass der Play Store damit begonnen hat, eine Warnung auszugeben, die ausgelöst wird, wenn die Standardfreigabeanweisungen von Flutter verwendet werden.
https://flutter.dev/docs/deployment/android

Es ist möglich, APKs sowohl für 32- als auch für 64-Bit-ARM mit Flutter einzureichen, es sind derzeit nur ein paar zusätzliche Schritte erforderlich. Verschiedene Lösungsansätze werden diskutiert in:
https://github.com/flutter/flutter/issues/18494#issuecomment -477502287

Wir prüfen derzeit auch, wie wir die Standardvorlagen/Tools/Release-Schritte am besten aktualisieren sollten, um diese Warnung zu vermeiden.

Danke für Ihre Geduld.

@eseidelGoogle Korrigieren Sie mich, wenn ich falsch App-Bundles darin besteht, alles in eine einzige Datei zu packen und den Play Store nur die erforderliche APK an jeden Benutzer

Wie ich in meiner ursprünglichen Frage erwähnt habe, verwende ich flutter build appbundle . In diesem Fall würde die von Ihnen vorgeschlagene Lösung nicht zutreffen, oder?

Wir haben gestern das Flatter-Build-Appbundle ausprobiert und vom Play Store Fehlermeldungen erhalten, dass es sich um einen Debug-Build handelt ...

natürlich muss es auch in add2app-Szenarien funktionieren, in denen keine Anweisungen von flatter.dev verwendet werden, sondern Android Studio build->Generate Signed APK verwendet wird

Vielen Dank für die Kennzeichnung als kritisch

Wir haben das gerade persönlich besprochen. @tvolkert wird jemanden finden, der hilft, dies zum Abschluss zu bringen.

Ich erhalte auch diese Warnung, gibt es eine Möglichkeit, standardmäßig auf 64bit umzuschalten?

Eine kleine Änderung an build.gradle kann die Aufnahme nativer 64-Bit-Bibliotheken in die Version apk und aab erzwingen - werfen Sie hier einen Blick

Bitte geben Sie uns für Google einen Überblick darüber, wie viele Telefone noch 32-Bit verwenden.
Wenn Sie 64-Bit- und 32-Bit-Bibliotheken hinzufügen, erhöhen Sie die endgültige APK-Größe.

Ich habe ein Non-Flatter-Projekt, bei dem ich das APK von ABI aufspalte, also habe ich separate APKs für 32bit und 64bit, um die Größe zu reduzieren. Jetzt scheint dieser Schritt mich zu zwingen, die apk-Größe zu erhöhen, um vorwärts zu kommen.
Aber warum ?

Ich habe keine Statistiken darüber, wie viele reine 32-Bit-Telefone in Indien/Afrika da draußen sind ... Ich bin mir sicher, dass es in Europa, den USA und Teilen Asiens so gut wie nichts gibt.
Was ist mit x86 / x86_64 vs armeabi / arm64-v8a ? Müssen wir libflutter.so für alle 4 ABIs in die endgültige Produktionsapk einfügen?
.. auch mips ... gibt es da draußen noch telefone , die noch mips verwenden ? Das weiß nur Google.

@VarolOkan Verwenden Sie AAB und lassen Sie Google ABI- und Bildschirm-dpi-Kombinationen generieren.

Die Schaltfläche [Start Rollout to Internal Test] ist auf der App-Release-Seite der Google Play Console deaktiviert (der Bildschirm, auf dem die obige 64-Bit-Warnmeldung angezeigt wird).

Die 64-Bit-Bundle-Anforderung ist jetzt ein Showstopper für Flatterprojekte.

@eseidelGoogle oder irgendjemand - kann jemand bestätigen, ob dies der
a) ein Showstopper
oder b) eine Verwarnung bis August
siehe: https://forums.expo.io/t/warning-with-the-google-play-64-bit-requirement/22305
Er weist darauf hin, dass es auf der linken Seite einige Kästchen gibt, die überprüft werden müssen, damit es funktioniert, und wenn die Warnung August sagt, scheint es ein großes Problem zu sein, wenn es tatsächlich Anfang Mai ist.

Außerdem - sehr nützlich zu wissen, ob es tatsächlich ungefähr keine 32-Bit-Maschinen gibt und die Verwendung eines einzeiligen abiFilters für den 64-Bit-Arm eine praktikable Option ist, um 99,5 % der Benutzer oder so etwas zu unterstützen; Ich habe vor einem ganzen Jahr gesehen, wie jemand "alle Telefone auf dem Markt" gereinigt hat, waren 64-Bit ... vielleicht bedeutet das, dass es viele alte Telefone gibt?

Nach meinem Verständnis ist dies kein Showstopper, sondern eher eine allgemeine Warnung. Wir haben @blasten gebeten, einen Blick darauf zu werfen, was wir hier tun können, damit das standardmäßige Flutter-Setup diese Warnung vermeidet. Ich gehe davon aus, dass wir in den nächsten Tagen einige Updates haben werden.

Wie @eseidelGoogle sagte, werde ich mich um dieses Problem kümmern. Haben Sie in der Zwischenzeit versucht, diese Schritte https://github.com/flutter/flutter/issues/18494#issuecomment -489807239 zu befolgen?

Ist das kein Problem mehr? https://github.com/flutter/flutter/issues/18494#issuecomment -482795450

Es ist kein Showstopper. Ich habe die Warnung erhalten, konnte aber meine App freigeben für
der Playstore.

Kr Morten

Am Di, 7. Mai 2019 um 17.46 Uhr, Audrius Karosevicius [email protected]
schrieb:

Ist das kein Problem mehr? #18494 (Kommentar)
https://github.com/flutter/flutter/issues/18494#issuecomment-482795450


Sie erhalten dies, weil Sie einen Kommentar abgegeben haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/flutter/flutter/issues/31922#issuecomment-490135779 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AA4B4J5BY3BJVIELNEPC4N3PUGP7BANCNFSM4HJU7TZA
.

>

;-)
/Morten

Internet: http://buildsucceeded.dk
Mobil: 51 21 90 79

Zusammenfassen:

1) Anfang dieses Jahres hat Play den Entwicklern mitgeteilt, dass ab August in den Store hochgeladene Apps 64-Bit-Versionen bereitstellen müssen (https://android-developers.googleblog.com/2019/01/get-your-apps-ready -for-64-bit.html). Diese Woche hat der Play Store damit begonnen, eine Informationsmeldung für hochgeladene Apps anzuzeigen, um vor der bevorstehenden Anforderung zu warnen. Die Anforderungen für den Play Store haben sich jedoch derzeit nicht geändert.

2) Die 64-Bit-APK-Anforderung der Warnhinweise ist jetzt mit ein wenig manuellem Aufwand zu erfüllen, um die Gradle-Dateien in einem Flutter-Projekt zu ändern: https://github.com/flutter/flutter/issues/18494#issuecomment - 489807239 für ein Beispiel, wie.

3) Wir arbeiten daran, dass das Standardverhalten von Flutter den kommenden Aktualisierungen der Play-Richtlinien rund um die 64-Bit-Unterstützung entspricht, ohne dass zusätzliche Anstrengungen seitens der Benutzer erforderlich sind. Ich gehe davon aus, dass die Arbeiten in den nächsten Tagen/Wochen abgeschlossen sein werden, lange vor den Fristen im August.

Wenn ich oben etwas übersehen habe, zögern Sie bitte nicht, einen Kommentar zu hinterlassen oder sich zu melden. Es tut uns leid, dass wir dies nicht aktualisiert haben, bevor Play die Warnung aktiviert hat. Vielen Dank für Ihre Hilfe und Ihr Feedback!

@eseidelGoogle

  1. Ich kann die von flutter build apk erstellte App nicht veröffentlichen. Der Play Store akzeptiert keine Nur-32-Bit-Builds in meinem Profil.
  2. Die Lösung aus #18494 (Kommentar) versagt auf 32bit-Geräten wie OnePlus One.

Meiner Meinung nach ist es ein Showstopper.

@eseidelGoogle

  1. Behoben. Google Play akzeptiert keine Builds, wenn Bewertung und Länder nicht konfiguriert sind. Allein die Nachricht ist irreführend.

Die 64-Bit-APK-Anforderung der Warnhinweise ist jetzt mit ein wenig manuellem Aufwand zu erfüllen, um die Gradle-Dateien in einem Flutter-Projekt zu ändern: #18494 (Kommentar) für ein Beispiel, wie.

nach ein paar Stunden Trial & Error war ich __nicht__ in der Lage, ein signiertes apk-noch-appbundle mit einer 64-bit-libflutter.so zu erstellen

das einzige libflutter.so, das im Bundle enthalten ist, ist das
armeabi-v7a (32-bit)
, beim Benutzen
Android Studio 3.4
Build #AI-183.5429.30.34.5452501, gebaut am 10. April 2019

Menü: Erstellen > Signiertes Bundle / APK generieren


flutter build apk --release --target-platform=android-arm64 -v
flutter build appbundle --release --target-platform=android-arm64 -v

beide schlagen fehl @ > Aufgabe: app:validateSigningRelease FAILED

@ciez Dies produzierte nur 64-Bit-

$ flutter build apk --release --target-platform=android-arm64
Initializing gradle...                                              1.1s
Resolving dependencies...                                           1.8s
Running Gradle task 'assembleRelease'...                                
Running Gradle task 'assembleRelease'... Done                       9.0s
Built build/app/outputs/apk/release/app-release.apk (7.5MB).

@adriank
ja es funktioniert.
habe das Problem herausgefunden: "~" im Pfad zur keystore.jks musste durch /home/user ersetzt werden

Entschuldigung für den Fehlalarm.

es scheint, dass jedes so gebaute Bundle höchstens auf 1 Bogen abzielen kann?

Ich warte auf das Flutter-Update, da die Problemumgehung gerade meine Builds kaputt gemacht hat.

@mulderpf Welche Problemumgehung hast du gegangen ?

In diesem Kommentar finden Sie das neueste Update vom Flutter-Team.

Ich habe ein Update bekommen: Ich habe das in meiner Filiale am Laufen!
Der Vorschlag ist, flutter build appbundle --release --target-platform=android-arm-all (empfohlen, um APK sofort aufzuteilen) oder flutter build apk --release --target-platform=android-arm-all in einer zukünftigen Version zu verwenden.

Ist jemand in der PST-Zeitzone bereit, es zu versuchen? Wenn ja, wende dich bitte an Gitter oder Slack :)

@blasten Leider konnte ich mit deiner Filiale kein Appbundle produzieren. Gradle schlägt irgendwie bei app:properties fehl, aber wenn man sich den Code ansieht, sieht es vielversprechend aus.
Haben Sie es geschafft zu überprüfen, dass flutter/engine AOT-Snapshots aus dem Verzeichnis ./lib/ lädt? Wenn man sich den Engine-Code ansieht, verwendet er überall Assets ... Wenn dies funktioniert, wird es das allgemeine Problem der App Bundles lösen, da sie derzeit keine Unterstützung für das Asset-Verzeichnis-Targeting von ABI haben.

@SPodjasek richtig, es bräuchte auch einen lokalen Build der Engine, also suchen die Klassen im APK nach den neuen Snapshots.

@blasten Ich habe es geschafft, meinen Build-Baum zu reparieren und kann jetzt erfolgreich ein App Bundle erstellen, das AOT-Snapshots in base/lib/${abi}/

  4649616  2019-05-13 20:52   base/lib/arm64-v8a/isolate_snapshot_data.so
  6296768  2019-05-13 20:52   base/lib/arm64-v8a/isolate_snapshot_instr.so
  8472736  2019-05-13 20:52   base/lib/arm64-v8a/libflutter.so
    32352  2019-05-13 20:52   base/lib/arm64-v8a/vm_snapshot_data.so
    19200  2019-05-13 20:52   base/lib/arm64-v8a/vm_snapshot_instr.so
  3700504  2019-05-13 20:52   base/lib/armeabi-v7a/isolate_snapshot_data.so
  6019680  2019-05-13 20:52   base/lib/armeabi-v7a/isolate_snapshot_instr.so
  6036116  2019-05-13 20:52   base/lib/armeabi-v7a/libflutter.so
    23520  2019-05-13 20:52   base/lib/armeabi-v7a/vm_snapshot_data.so
    12640  2019-05-13 20:52   base/lib/armeabi-v7a/vm_snapshot_instr.so

Und ich frage mich, ob es ausreichen würde, dies zu ändern ...

https://github.com/flutter/engine/blob/1b649a57d18a8c41ae017d79cf9bdb999a2276ac/shell/platform/android/io/flutter/view/FlutterMain.java#L334 -L336

zu so etwas wie:

getContext().getApplicationInfo().nativeLibraryDir;

Natürlich wäre es nicht so einfach, aber um den Überblick zu bekommen...

So testen Sie flutter build appbundle mit 32- und 64-Bit-Unterstützung:

  1. Laden Sie flutter.jar von https://drive.google.com/open?id=1yAkfhPKfhdd8MwW39qfkZDePc66SMA_z herunter und platzieren Sie es unter {flutterInstallationPath}/bin/cache/artifacts/engine/android-arm-release . Um den Installationspfad von Flutter zu überprüfen, verwenden Sie which flutter

Wenn Sie die Änderungen an FlutterMain.java sehen möchten, siehe: https://github.com/blasten/engine/commit/b3ab9def28a414ffa53bf10ad6a3249f31ed00e3

  1. Schauen Sie sich den Patch aus diesem Zweig an:
$ cd {flutterInstallationPath}
$ git remote add arm-all https://github.com/blasten/flutter
$ git fetch arm-all apk_defaults
$ git checkout apk_defaults

$ git build appbundle --release --target-platform=android-arm-all

Lassen Sie mich wissen, was Sie finden.

+1

@danysz Anstatt +1 zu schreiben, hätte das mehr Sinn gemacht, wenn Sie dieses Thema positiv bewertet hätten (keine harten Gefühle für Sie). An andere, wenn sie diese Nachricht lesen, schreiben Sie bitte nicht "ich auch", "dasselbe hier", "+1", sondern stimmen Sie diesem Thema zu.

Dankeschön!

@blasten Apps starten nicht:

05-14 10:50:35.979  3445 28828 I ActivityManager: Start proc 30019:xxx/u0a262 for activity xxx/com.example.flutterapp.MainActivity
05-14 10:50:36.067 30019 30019 I FirebaseInitProvider: FirebaseApp initialization successful
05-14 10:50:36.108 30019 30019 E flutter : [ERROR:flutter/runtime/dart_vm_data.cc(19)] VM snapshot invalid and could not be inferred from settings.
05-14 10:50:36.108 30019 30019 E flutter : [ERROR:flutter/runtime/dart_vm.cc(241)] Could not setup VM data to bootstrap the VM from.
05-14 10:50:36.108 30019 30019 E flutter : [ERROR:flutter/runtime/dart_vm_lifecycle.cc(89)] Could not create Dart VM instance.
05-14 10:50:36.108 30019 30019 F flutter : [FATAL:flutter/shell/common/shell.cc(218)] Check failed: vm. Must be able to initialize the VM.
05-14 10:50:36.108 30019 30019 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 30019 (xxx), pid 30019 (xxx)

Dies geht an mein physisches Gerät und 9/10 Test Lab-Gerät - wir haben ein inkonsistentes Ergebnis für Pixel-Q-Beta.

@danysz Anstatt +1 zu schreiben, hätte das mehr Sinn gemacht, wenn Sie dieses Thema positiv bewertet hätten (keine harten Gefühle für Sie). An andere, wenn sie diese Nachricht lesen, schreiben Sie bitte nicht "ich auch", "dasselbe hier", "+1", sondern stimmen Sie diesem Thema zu.

Dankeschön!

getan

@blasten Beim Durchsehen deiner Änderungen habe ich festgestellt, dass man für vorhandene Apps AndroidManifest.xml ändern muss

diff --git a/packages/flutter_tools/templates/app/android.tmpl/app/src/main/AndroidManifest.xml.tmpl b/packages/flutter_tools/templates/
app/android.tmpl/app/src/main/AndroidManifest.xml.tmpl
index 4778a2080..f3492835e 100644
--- a/packages/flutter_tools/templates/app/android.tmpl/app/src/main/AndroidManifest.xml.tmpl
+++ b/packages/flutter_tools/templates/app/android.tmpl/app/src/main/AndroidManifest.xml.tmpl
@@ -24,6 +24,11 @@
             <meta-data
                 android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
                 android:value="true" />
+            <!-- If true, the snapshots are read from lib instead of the assets 
+                 directory in the APK. -->
+            <meta-data
+                android:name="io.flutter.view.FlutterMain.snapshot-in-lib"
+                android:value="${snapshotInLib}" />
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.LAUNCHER"/>

Trotzdem scheitert es immer noch...

@blasten

git build
$ git build appbundle --release --target-platform=android-arm-all
"git build" or "flutter build" ? :-)

Leider konnte ich mit deiner Anleitung kein Appbundle erstellen. Gradle schlägt bei app:properties irgendwie fehl (nach einem "Building flatter tool..." und einigen Downloads von android-arm-*....).

Es scheint, dass der Download-Prozess flatter.jar überschrieben hat

@MoacirSchmidt Ich hatte ähnliche Probleme, aber das Bereinigen von Build-Verzeichnissen ( flutter clean ) und Gradle-Caches ( ~/.gradle/caches & ${projectRoot}/android/.gradle ) hat geholfen

Für Leute, die ein Problem beim Erstellen von 64-Bit-APKs haben.
Diese Einstellung hat bei mir funktioniert.

build.gradle

flutter build apk --release --target-platform=android-arm ausführen

Versionscode erhöhen

flutter build apk --release --target-platform=android-arm64 ausführen

flutter build appbundle ist jetzt im Master, möchte eine freiwillige Person es versuchen?

Für Leute wie mich, die Angst haben, Gradle-Dateien zu ändern – wenn Sie nur eine 64-Bit-Version wünschen, funktioniert flutter build apk --release --target-platform=android-arm64 auch ohne modifizieren von build.gradle.

@blasten Ich habe flutter build appbundle im beta Kanal ausprobiert. Wenn ich versuche, in den Play Store hochzuladen, erhalte ich immer noch den 32 / 64-Fehler.

Ich weiß, dass Sie master gesagt haben, aber ich habe einige Fehler, die ich an diesem Zweig noch durcharbeite. Wollte dir nur diese Info geben!

Diese Warnung bekomme ich auch!

Gibt es eine Möglichkeit, ein App-Bundle für alle Architekturen zu erstellen?

Irgendein Update, wie man es beheben kann?

Ich schließe diesen Fehler, da er sich auf App Bundles bezieht. Wenn Sie zum Master-Branch wechseln, können Sie mit flutter build appbundle App Bundles generieren, die 32- und 64-Bit-CPU-Architekturen unterstützen. Wenn Sie App Bundles bevorzugen oder nicht verwenden können, folgen Sie diesem Thread, um zusätzliche Unterstützung über Fat APKs zu erhalten.

@blasten - könnten Sie bitte eine Anleitung zur Verwendung in Android Studio bereitstellen?
Hier ist meine aktuelle Flatter-Konfiguration:

Zusammenfassung des Arztes (um alle Details zu sehen, führen Sie flatter doctor -v aus):
[√] Flutter (Kanal stabil, v1.2.1, unter Microsoft Windows [Version 10.0.17763.503], locale en-US)
[√] Android-Toolchain - für Android-Geräte entwickeln (Android SDK Version 28.0.3)
[√] Android Studio (Version 3.4)

Wann wird diese Änderung in den Zweig stable ?

@blasten funktioniert es mit Add2App?

@blasten wie signiere

@blasten ist es eine gute Möglichkeit, den Master-Zweig für Produktions-Apps zu verwenden?

@dblokhin können Sie flutter channel master , um zum Master-Kanal zu wechseln. Beachten Sie, dass dies jetzt auch im Entwicklerkanal verfügbar ist.

@tvolkert - stable Zweig zusammengeführt wird?

@angel1st Ich würde in etwa 3 Monaten zu Gast sein.

@truongsinh - wenn man bedenkt, dass der 1. August in etwa zwei Monaten liegt, würde ich eigentlich eine viel schnellere Annahme erwarten ...

@angel1st es ist bereits im Stall! ich werde mehr erfahren...

@angel1st es ist bereits im Stall!

Bist du dir da sicher? Der aktuelle Stall ist 1.5.4-Hotfix 2 und erzeugt keine Bundles mit 32 und 64. Oder übersehe ich etwas?

@shinayser ist es noch nicht, sorry. Ich werde mehr herausfinden und den Thread aktualisieren. Wie Todd bereits erwähnt hat, ist der Kanal master derzeit die einzige Option.

Ich habe das App-Bundle ausprobiert. Ich hatte eine Version von Flutter vor der Version 1.6.1 im Master
Kanal.

Die Ausgabe des Bundles betrug etwa 12 MB, was die Warnung nicht generierte
und die einzelnen APK-Größen lagen bei 7. Soweit ist alles gut.

Aber als ich die App nach dem Update über den Play Store öffnete, wurde meine App
im Begrüßungsbildschirm hängen geblieben.

Ich hatte keine andere Wahl, um zur Flatter-Build-APK zurückzukehren, die gut funktionierte, idk wie
und warum.

Ich glaube also nicht, dass dieses Thema noch geschlossen ist, denn obwohl die Warnung
ist mit dem Appbundle weg, ebenso die App selbst. Das Appbundle ist
macht die App nutzlos, da sie im Begrüßungsbildschirm hängen bleibt.

Dann melde dich gerne direkt auf Gitter bei mir: .aab senden können, die das Tool generiert hat.

Ich glaube, wir brauchen die Verwendung auf die eine oder andere Weise stable vor Ende Juni von entscheidender Bedeutung ist, wenn das Flutter-Team die Entwickler behalten möchte.

@angel1st wir arbeiten hart daran, dass diese Arbeit bis Ende Juni auf stable hochgestuft wird .

Einige Aktualisierungen:

Wir konnten reproduzieren, dass Apps im Begrüßungsbildschirm hängen blieben, nachdem ein APK aus einem App-Bundle bereitgestellt wurde (generiert mit flutter build appbundle aus dem Master-Channel).

Dies scheint darauf zurückzuführen zu sein, dass wir die AOT-Snapshots ( vm-snapshot-data , vm-snapshot-instr , isolate-snapshot-data , isolate-snapshot-instr ) als Bibliotheken innerhalb von /lib/{abi}/lib_{snapshot}.so um ABI-Split für App Bundles zu erhalten.

BEARBEITEN : Es stellte sich heraus, dass der Code im Android-Einbetter ein Verzeichnis mit dem Namen flutter_assets in dieser Zeile erwartet, aber meine jüngste Änderung zur Unterstützung von App-Bundles hat das Erstellen eines solchen Verzeichnisses deaktiviert, was dazu führte, dass die App nie gestartet wurde. Dieser Commit von @jason-simmons https://github.com/flutter/engine/compare/7f4f52f95294...e8db5dfd52ee behebt das Problem.

Abschluss

Der aktuelle Plan sieht vor, dass das Flatter-Tool ELF-Shared-Libraries anstelle von AOT-Snapshots generieren kann. Diese Funktion wurde gerade dem Dart SDK in https://github.com/dart-lang/sdk/commit/af93ebcf4cb55ae5f0f39a183ad2d42ca13ae51f hinzugefügt.

Das bedeutet, dass wir ABI-Split für App Bundles und Fat APKs mit echten Bibliotheken erhalten.

Ich werde diesen Fehler und https://github.com/flutter/flutter/issues/18494 aktualisieren, sobald das Problem behoben ist. In der Zwischenzeit können Sie durch die Übergabe von --target-platform an build appbundle App-Bundles erstellen, ohne die AOT-Snapshots nach lib/ .

Einige Aktualisierungen:

Wir konnten reproduzieren, dass Apps im Begrüßungsbildschirm hängen blieben, nachdem ein APK aus einem App-Bundle bereitgestellt wurde (generiert mit flutter build appbundle aus dem Master-Channel).

Dies scheint darauf zurückzuführen zu sein, dass wir die AOT-Snapshots ( vm-snapshot-data , vm-snapshot-instr , isolate-snapshot-data , isolate-snapshot-instr ) als Bibliotheken innerhalb von /lib/{abi}/lib_{snapshot}.so um ABI-Split für App Bundles zu erhalten. Schließlich sind die Snapshots keine echten Bibliotheken und unser Hack, um dieses Verhalten zu erreichen, hat nicht funktioniert.

Der aktuelle Plan sieht vor, dass das Flatter-Tool ELF-Shared-Libraries anstelle von AOT-Snapshots generieren kann. Diese Funktion wurde gerade dem Dart SDK in dart-lang/ sdk@af93ebc hinzugefügt .

Das bedeutet, dass wir ABI-Split für App Bundles und Fat APKs mit echten Bibliotheken erhalten.

Ich werde diesen Fehler und #18494 aktualisieren, sobald das Problem behoben ist. In der Zwischenzeit können Sie durch die Übergabe von --target-platform an build appbundle App-Bundles erstellen, ohne die AOT-Snapshots in lib/ .

@blasten funktioniert das richtig, wenn Sie eine andere Bibliothek haben, die auch nativen Code verwendet? Zum Beispiel: VLC. Es produziert einige .so wenn wir die APK erstellen.

Ja – Sie können andere native Codebibliotheken in Ihrem APK verwenden.

Im neuen Verpackungsformat enthält eine Flutter-App die Engine-Bibliothek libflutter.so zusammen mit einem weiteren .so mit den AOT-Snapshot-Daten, die aus dem Dart-Code Ihrer App kompiliert wurden. Die App kann .so Bedarf weitere

Zu Ihrer Information, die Behebung des Problems, auf dem Begrüßungsbildschirm hängen zu bleiben, sollte in der (bevorstehenden) Version des Entwicklerkanals 1.7.0 (https://github.com/flutter/flutter/wiki/Bad-Builds#v161---) enthalten sein. v167)

Hallo zusammen. Die Lösung für das Problem des Hängenbleibens auf dem Begrüßungsbildschirm ist im Entwicklerkanal gelandet - Sie sollten es sehen, wenn Sie flutter upgrade auf v1.7.0. Bitte probieren Sie es aus und lassen Sie es uns wissen, wenn Sie Probleme mit flutter build appbundle .

@tvolkert Hat bei mir vorher nicht funktioniert und funktioniert bei mir jetzt nicht. Weder auf Channel Dev (1.7.0) noch auf Channel Master (1.7.1). App-Build mit flutter build appbundle stürzt ab, nachdem sie über den Play Store veröffentlicht und auf einem echten Gerät ausgeführt wurde.
Bearbeiten: Es funktioniert jetzt auf Channel Dev (1.7.0), nachdem die App vom Gerät gelöscht und aus dem Play Store neu installiert wurde.
Edit2: Es funktioniert NICHT. Der Play Store war etwas langsamer als normal, während die richtige Version verteilt wurde. Was kann ich tun, um die Reproduktion zu unterstützen?

@masewo können Sie den Grabstein vom Gerät sammeln, zusammen mit welcher Version von Flutter zu diesem Zeitpunkt darauf lief?

@jason-simmons @blasten noch etwas, das du gerne aufspüren

@tvolkert

Grabstein:

2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: Build fingerprint: 'samsung/crownltexx/crownlte:9/PPR1.180610.011/N960FXXS2CSDJ:user/release-keys'
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: Revision: '28'
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: ABI: 'arm64'
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: pid: 8261, tid: 8261, name: asewo.myfirstapp  >>> net.masewo.myfirstapp <<<
2019-06-04 08:32:44.375 8326-8326/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG: Abort message: '[FATAL:flutter/shell/common/shell.cc(218)] Check failed: vm. Must be able to initialize the VM.
    '
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x0  0000000000000000  x1  0000000000002045  x2  0000000000000006  x3  0000000000000008
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x4  0000000000000000  x5  0000000000000000  x6  0000000000000000  x7  0080000000000000
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x8  0000000000000083  x9  000000767c1f9890  x10 fffffff87ffffbdf  x11 0000000000000001
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x12 00000075ded1c000  x13 0000000000000008  x14 ffffffffffffffff  x15 0000402003ff3b02
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x16 000000767c2302b0  x17 000000767c16f958  x18 0000007fdd2251da  x19 0000000000002045
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x20 0000000000002045  x21 0000000000000083  x22 00000075edde02e0  x23 00000075dec79fc0
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x24 00000075de3a6150  x25 0000000000000000  x26 00000075f7614ca0  x27 0000000000000003
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     x28 0000000000000000  x29 0000007fdd225b00
2019-06-04 08:32:44.376 8326-8326/? A/DEBUG:     sp  0000007fdd225ac0  lr  000000767c162da0  pc  000000767c162dcc
2019-06-04 08:32:44.377 8326-8326/? A/DEBUG: backtrace:
2019-06-04 08:32:44.377 8326-8326/? A/DEBUG:     #00 pc 0000000000021dcc  /system/lib64/libc.so (abort+124)
2019-06-04 08:32:44.377 8326-8326/? A/DEBUG:     #01 pc 0000000000e4a6a0  /data/app/net.masewo.myfirstapp-J4PFXKn_O2diLnKpCeu2eg==/split_config.arm64_v8a.apk (offset 0xe2d000)

flattern:

D:\Programme\Android\flutter\bin\flutter.bat doctor --verbose
[√] Flutter (Channel dev, v1.7.0, on Microsoft Windows [Version 10.0.18362.145], locale de-DE)
    • Flutter version 1.7.0 at D:\Programme\Android\flutter
    • Framework revision f36a35d20a (3 days ago), 2019-05-31 15:27:56 -0400
    • Engine revision a32df2c928
    • Dart version 2.3.2 (build 2.3.2-dev.0.0 445a23a9bc)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at D:\Programme\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: D:\Programme\Android\Android Studio Dev\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at D:\Programme\Android\Android Studio Beta
    • Flutter plugin version 36.0.7
    • Dart plugin version 191.7221
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b02)

[√] Connected device (1 available)
    • SM N960F • xxxxxxxxxxxxxxxx • android-arm64 • Android 9 (API 28)

@jason-simmons @blasten es ist diese Behauptung , die den Absturz in @masewos Fall verursacht hat

@masewo wir können den Absturz auf unserer Seite ohne unsere Apps nicht reproduzieren - wären Sie bereit, eine unsignierte .aab-Datei aus der Version 1.7.1 zu erstellen, die dieses Verhalten demonstriert, und sie mir per E-Mail zu senden (tvolkert@google .com)? Wenn ja, wäre das sehr hilfreich!

Zu Ihrer Information , die folgende Ankündigung wurde bezüglich unserer 64-Bit-Unterstützung an

https://groups.google.com/forum/#!topic/flutter -announce/oIzwT9EDczc

@tvolkert arbeitet das Team auch daran, https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps mit allen Punkten, die Sie aufgelistet haben , kompatibel zu machen?

  1. Bieten Sie (standardmäßig) eine Möglichkeit zum Erstellen eines App-Bundles, das sowohl 32-Bit als auch 64-Bit unterstützt. (bereits zum Testen auf dem Entwicklerkanal verfügbar)

  2. Stellen Sie (standardmäßig) eine Möglichkeit bereit, ein APK zu erstellen, das sowohl 32-Bit als auch 64-Bit unterstützt. (im Gange)

@truongsinh Ja, siehe diesen Kommentar in der ausstehenden PR: https://github.com/flutter/flutter/pull/33696#issuecomment -498934359

@masewo und alle anderen: Wir konnten den in https://github.com/flutter/flutter/issues/31922#issuecomment -498541765 beschriebenen Absturz replizieren und spüren ihn auf.

tldr: halt durch - wir sind dabei 🙂

Hallo zusammen,

TLDR:

Wir haben das Problem mit den Abstürzen beim Herunterladen aus dem Play Store identifiziert und arbeiten an einer Lösung, die innerhalb des gleichen Zeitraums wie oben in https://github.com/flutter/flutter/issues/31922#issuecomment beschrieben geliefert werden soll -498880614

Erklärung auf hohem Niveau

Für Interessierte ist die etwas lange Erklärung, dass der Play Store bei Geräten mit Android Marshmallow oder höher Apps erkennt, die als App Bundles mit mehreren ABIs verpackt sind – und diese Apps auf dem Gerät in Form von "split" installiert APKs". Dabei werden die darin enthaltenen .so-Dateien nicht aus dem APK-Zip-Archiv extrahiert, was sich vom Verhalten nicht geteilter APKs unterscheidet. Da der aktuelle Mechanismus der Flutter-Engine

Die Lösung besteht darin, nur dlopen die Bibliotheken zu

Hallo zusammen,

Wir glauben, dass die Fixes alle auf dem master Kanal gelandet sind. Wenn Sie sie ausprobieren möchten, gehen Sie wie folgt vor:

  • flutter build appbundle

    Standardmäßig enthält das App Bundle Ihren Dart-Code und die Flutter-Laufzeit, die für armeabi-v7a (32-Bit) und arm64-v8a (64-Bit)

  • flutter build apk --split-per-abi

    Dieser Befehl führt zu zwei APKs:

    build/app/outputs/apk/release/app-armeabi-v7a-release.apk
    build/app/outputs/apk/release/app-arm64-v8a-release.apk

  • flutter build apk

    Dies führt zu einem fetten APK, das Ihren für alle Ziel-ABIs kompilierten Code enthält. Solche APKs sind größer als ihre geteilten Gegenstücke, was dazu führt, dass der Benutzer native Binärdateien herunterlädt, die nicht für die Architektur ihres Geräts geeignet sind.

flutter build appbundle funktioniert jetzt für mich. Danke @tvolkert !

Kann bestätigen, dass dies (nach dem Wechsel zum Master) auf mehreren Android-Geräten funktioniert. Was für ein Lebensretter, danke.

Groß! Danke an @blasten , @jason-simmons und @rmacnak-google - ich bin nur der Bote 🙂

Vielen Dank an das gesamte Flutter-Team und die Mitwirkenden für eine so schnelle Antwort. Hoffentlich kommt dieser innerhalb von 1,5 Monaten zum Beta-Kanal :)

@tomaszpolanski der Plan ist es, es bis Ende Juni in die Beta zu bringen und bis Anfang Juli zu stabilisieren 🙂

@tvolkert gibt es ein flutter build appbundle Befehlsflag, das wir auch an x86 übergeben können?

@athornz nicht im Freigabemodus atm. Siehe: https://github.com/flutter/flutter/issues/9253. Es wird jedoch in naher Zukunft möglich sein, AOT-Snapshots für x86_64 hinzuzufügen.

Beim Wechsel in den Master-Zweig bekomme ich den folgenden Fehler. Stabile Builds, aber keine 64-Bit-Version im Release-Bundle.

Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, v1.7.4-pre.108, on Mac OS X 10.14.5 18F132, locale nl-NL)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
[✓] iOS tools - develop for iOS devices
[✓] Android Studio (version 3.4)
[✓] IntelliJ IDEA Community Edition (version 2018.2.7)
[✓] Connected device (1 available)

• No issues found!
MacBook-Pro-van-Wendel:zaira wendel$ flutter build appbundle --build-name=1.0.6 --build-number=6 -t lib/main_prod.dart --flavor=prod
Initializing gradle...                                              0,9s
Resolving dependencies...                                           2,2s
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
Running Gradle task 'bundleProdRelease'...                              
Running Gradle task 'bundleProdRelease'... Done                    78,6s
Gradle task bundleProdRelease failed with exit code 1

@xinoxapps , können Sie die vollständige Ausgabe von flutter build appbundle -v senden (als gist.github.com-Link bitte, um diesen Thread besser lesen zu können 🙂)?

@xinoxapps , ich konnte dieses Problem nicht lokal build.gradle Konfigurationslogik zu geben, die das Problem möglicherweise verursacht oder nicht. Wäre es möglich, zu einem minimalen Reprofall zu gelangen? Versuchen Sie zB, etwas von dieser benutzerdefinierten Gradle-Konfiguration zu entfernen, bis es funktioniert, und teilen Sie dann mit, was das Problem genau verursacht hat. So habe ich den Geschmack definiert:

android {
  flavorDimensions "version"
    productFlavors {
        prod { }
    }
}

Hallo zusammen,

Diese Fixes sind jetzt im dev Kanal verfügbar, ab der Version v1.7.4 oder höher.

Ich habe zu App-Bundles gewechselt und in den Play Store verschoben, und die meisten Benutzer scheinen glücklich zu sein. Ich habe jedoch zwei Berichte darüber, dass die App auf einem x86-Gerät, das ARM-Emulation unterstützt, dem Asus ZenFone 2 ZE551ML, überhaupt nicht startet: https://www.gsmarena.com/asus_zenfone_2_ze551ml-6917.php. Leider konnten die Benutzer keine adb-logcat-Ausgabe bereitstellen. Soll das neue ELF-Format auf solchen Geräten funktionieren?

Screen Shot 2019-06-16 at 11 55 54 PM

Wenn ich zu den Kanälen master und dev wechsele, bekomme ich diesen Fehler mit flutter build appbundle :

* What went wrong:
Execution failed for task ':app:transformNativeLibsWithMergeJniLibsForProductionRelease'.
> More than one file was found with OS independent path 'lib/armeabi-v7a/libapp.so'

@darioielardi können Sie gist.google.com-Links in die Ausgabe von flutter build appbundle -v sowie den Inhalt Ihrer android/build.gradle und android/app/build.gradle Dateien einfügen?

Ich habe zu App-Bundles gewechselt und in den Play Store verschoben, und die meisten Benutzer scheinen glücklich zu sein. Ich habe jedoch zwei Berichte darüber, dass die App auf einem x86-Gerät, das ARM-Emulation unterstützt, dem Asus ZenFone 2 ZE551ML, überhaupt nicht startet: https://www.gsmarena.com/asus_zenfone_2_ze551ml-6917.php. Leider konnten die Benutzer keine adb-logcat-Ausgabe bereitstellen. Soll das neue ELF-Format auf solchen Geräten funktionieren?

Screen Shot 2019-06-16 at 11 55 54 PM

ja, ich habe das gleiche problem. es funktioniert mit flatter build appbundle und auf den meisten Geräten laufen meine Apps gut. aber nicht für diesen asus

@blasten Ja, ich verstehe, dass natives x86 nicht unterstützt wird, aber ich denke, das Problem hier ist, dass die ARM / ARM64-App-Bundles von Google Play auf x86-Geräten installiert werden, die die Unterstützung für ARM über Übersetzung bewerben, aber die neuen Appbundles irgendwie nicht funktionieren auf solchen Geräten korrekt (vielleicht weil die neuen ELF-Formate den ARM-Übersetzer verwirren). Die ursprünglichen ARM-APKs (nicht ARM64) scheinen jedoch auf ihnen zu funktionieren, wie durch die Rückkehr zu einem zwei Wochen alten Master-Zweig (e1a784ae, um genau zu sein) bestätigt und festgestellt wurde, dass die beiden Benutzer, die Probleme sahen, jetzt meine App haben wieder auf ihren ZenFone 2-Geräten laufen. Dies wird mich daran hindern, auf v1.7.4 zu aktualisieren.

@xinoxapps , können Sie die vollständige Ausgabe von flutter build appbundle -v senden (als gist.github.com-Link bitte, um diesen Thread besser lesen zu können 🙂)?

Bei mir funktioniert es jetzt auf dem Entwicklerkanal. Benötigen Sie noch ein paar Informationen?

@xinoxapps nein - freut mich zu hören, dass es bei dir funktioniert.

@darioielardi das Problem ist jetzt im Master behoben. Bitte führen Sie flutter upgrade im Master-Channel aus.

@darioielardi das Problem ist jetzt im Master behoben. Bitte führen Sie flutter upgrade im Master-Channel aus.

@blasten Ich habe auf Master bekomme diesen Fehler beim Ausführen von flutter build appbundle
Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.

Dies ist mein Gradle und die vollständige Ausgabe https://gist.github.com/julindra/80cd2e588cf11bdd0df3f34239b07409

Hallo zusammen,

Wir streben an, ein paar weitere Fehlerkorrekturen für Add-to-Apps und Geschmacksrichtungen vorzunehmen – und eine v1.7.5 Entwicklerversion herauszugeben. Aus diesem Grund halten wir es vor, in die Beta-Phase hochzustufen, um diese Fehlerbehebungen zu übernehmen. Wir erwarten diese Anfang Juli noch stabil.

flutter build appbundle hat bei mir funktioniert. Vielen Dank @tvolkert .

@julindra Hinzufügen von -ignorewarnings zu 'proguard-rules.pro behebt dieses Problem. Das Paket android.arch.* ist derzeit nicht enthalten. Eine andere Möglichkeit besteht darin, Ihre android/app/build.gradle zu bearbeiten und Folgendes hinzuzufügen:

.gradle dependencies { implementation "android.arch.lifecycle:common-java8:1.1.1" implementation 'android.arch.lifecycle:extensions:1.1.1' }

cc @matthew-carroll

Ich habe das Paket app.aab in den Play Store hochgeladen. Die Warnung wegen fehlender 64 Bit war weg, aber die App stürzte nach der Installation aus dem Play Store beim Start ab. Irgendwelche Vorschläge?

Ist es auch sicher, flutter build appbundle für die Veröffentlichung in der Produktion zu verwenden?

@sulaysumaria können Sie das Ergebnis der Ausführung von flutter doctor posten?

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.5 18F132, locale en-IN)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✗] iOS toolchain - develop for iOS devices
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    ✗ libimobiledevice and ideviceinstaller are not installed. To install with Brew, run:
        brew update
        brew install --HEAD usbmuxd
        brew link usbmuxd
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    ✗ ios-deploy not installed. To install:
        brew install ios-deploy
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
        For more info, see https://flutter.dev/platform-plugins
      To install:
        brew install cocoapods
        pod setup
[!] Android Studio (version 3.4)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.35.1)
[✓] Connected device (1 available)

! Doctor found issues in 2 categories.

@truongsinh

Ich habe auch versucht, apk aus dem App Bundle zu generieren und zu installieren. Es stürzt auch beim Start ab.

$ bundletool build-apks --bundle=build/app/outputs/bundle/app.aab --output=app.apks
$ bundletool install-apks --apks app.apks

Versuchen Sie, zum Kanal dev wechseln und überprüfen Sie.

Ich habe versucht, einen dev Kanal zu erstellen, aber es hat eine meiner Abhängigkeiten gebrochen. Ich werde versuchen, es auszukommentieren und zu bauen, um zu sehen, ob die App funktioniert.

Ist es auch sicher, den Kanal dev für die Produktionsfreigabe zu verwenden?

Ups, tut mir Leid. Bei der Produktion wäre ich vorsichtiger.

Ich werde vorerst APKs erstellen. Obwohl Google vorschlägt, Bundles anstelle von APKs hochzuladen, ist es gut, wenn dies in der nächsten Version im Stable Branch behoben wird.

Ich habe dies mit adb logcat gefunden:

[FATAL:flutter/runtime/dart_vm.cc(389)] Error while initializing the Dart VM: Snapshot not compatible with the current VM configuration: the snapshot requires 'product use_bare_instructions no-"asserts" causal_async_stacks no-bytecode arm-eabi softfp' but the VM has 'product use_bare_instructions no-"asserts" causal_async_stacks no-bytecode arm64-sysv'

Ich bin auf dem Kanal stable .

Lösung von https://github.com/flutter/flutter/issues/19865 hat funktioniert.

Ich musste auch den Abschnitt splits aus build.gradle entfernen.

Die App funktioniert jetzt einwandfrei, wenn sie über das Bundletool installiert wird. Ich werde versuchen, in den Playstore hochzuladen und zu prüfen, ob alles gut geht.

@sulaysumaria der Fix ist noch nur im Master-Zweig verfügbar. Wenn Sie auf Stable sind – wie in Ihrer Ausgabe von flutter doctor

[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.5 18F132, locale en-IN)

die Korrektur wird nicht angewendet. Sie müssen warten, bis der Fix auf Stable eingestellt ist, wenn Sie mit Stable bauen möchten. Sieht so aus, als ob es irgendwo um 1.7.x bis dahin müssen Sie die APKs separat hochladen.

Ohh ... Danke @pythoneer . Weißt du, wann es auf dem stabilen Kanal verfügbar sein wird?

@sulaysumaria kein Problem. In diesem Thread wird es mehrfach erwähnt

Wir erwarten diese Anfang Juli noch stabil.

Es hat auf dem Kanal dev funktioniert. Ich habe flutter build appbundle --target-platform android-arm,android-arm64 und das Bundle in den Play Store hochgeladen und es hat perfekt funktioniert.

@sulaysumaria - Sie sollten bereits vorbereitete Anweisungen entweder mit dem Master- oder dem Entwicklungskanal verwenden.

@julindra Hinzufügen von -ignorewarnings zu 'proguard-rules.pro behebt dieses Problem. Das Paket android.arch.* ist derzeit nicht enthalten. Eine andere Möglichkeit besteht darin, Ihre android/app/build.gradle zu bearbeiten und Folgendes hinzuzufügen:

dependencies {
  implementation "android.arch.lifecycle:common-java8:1.1.1"
  implementation 'android.arch.lifecycle:extensions:1.1.1'
}

cc @matthew-carroll

Vielen Dank. Ich benutze einfach den Dev-Kanal und füge -ignorewarnings , es funktioniert perfekt.

hat bei mir mit flutter build appbundle worked gearbeitet
https://github.com/flutter/flutter/issues/18494#issuecomment -489807239

@blasten ist das an dieser Stelle schließbar oder bleibt noch Arbeit?

@cbracken , ich denke, dies kann jetzt oder nach der nächsten stabilen Veröffentlichung geschlossen werden.

Planen Sie immer noch, das Inkompatibilitätsproblem mit ZenFone 2-Geräten und ähnlichen x86-Geräten zu beheben, die die Installation von ARM-Apps aus dem Play Store ermöglichen und libhoudini verwenden, um sie auszuführen?

Ich habe versucht, einen dev Kanal zu erstellen, aber es hat eine meiner Abhängigkeiten gebrochen. Ich werde versuchen, es auszukommentieren und zu bauen, um zu sehen, ob die App funktioniert.

Ist es auch sicher, den Kanal dev für die Produktionsfreigabe zu verwenden?

Ich habe noch nie einen Branch anstelle von dev verwendet und meine Apps funktionieren reibungslos. Vertrauen Sie also der Branche, die Sie nie enttäuscht. @sulaysumaria

@matthewlloyd Wir haben vom Play Store-Team gehört, dass es besser ist, eine explizite x86-Binärdatei hinzuzufügen, als zu versuchen, dass unsere vorhandenen Binärdateien mit dem arm-> x86-Übersetzer gut funktionieren. - Das Team hat jedoch kürzlich den Code verbessert, den der Dart-Compiler generiert, und ich frage mich, ob die Übersetzung damit vielleicht funktioniert hat. Probieren Sie es aus und lassen Sie es mich wissen. Andernfalls müssen Sie je nach Situation möglicherweise die JIT-Version für x86 erstellen, die normalerweise zum Debuggen/Profiling in Emulatoren verwendet wird.

@blasten Danke für die Info. Es bringt mich etwas in die Klemme, weil ich selbst keins dieser Geräte besitze - nur zwei anonyme Play Store-Bewertungen von verärgerten ZenFone 2-Benutzern -, also habe ich keine Möglichkeit zum Testen. Das Risiko, Dinge zu beschädigen, ist zu groß, um einen weiteren Appbundle-Build zu veröffentlichen, bis jemand bestätigt, dass der verbesserte Code auf diesen Geräten tatsächlich funktioniert. Sofern es keine Möglichkeit gibt, dem Play Store mitzuteilen, dass solche Geräte ausgeschlossen werden sollen, werde ich weiterhin Builds veröffentlichen, die mit einer alten Version von Flutter (und 32-Bit-APKs) erstellt wurden, bis sie entweder von Google getestet und bestätigt oder nicht mehr bestätigt wurde Ausgabe. Ich denke, das wird nicht sein, bis mehr Apps mit dem neuen Appbundle/.so-Format in den Store gepusht werden. Ich werde warten...

Für diejenigen, die noch suchen, hier war die Lösung, die für mich funktionierte:

flatter build apk --split-per-abi
hat nicht funktioniert, selbst nach dem Bearbeiten des Build-Gradle
von https://flutter.dev/docs/deployment/android#build -an-apk

Verwenden Sie stattdessen:

  1. Flatter-Build-Appbundle
  2. und dann app.aab hochladen

Das Problem wurde sowohl für 32 als auch für 64 Bit behoben, und die Warnung „Version entspricht nicht der 64-Bit-Anforderung von Play“ ist verschwunden.

Danke @juliengit2 , flutter build appbundle funktioniert.

Erwähnenswert ist auch die Flatter-Version, da ich bis jetzt v1.5.0 hatte und es nicht funktionierte.
Ich musste aktualisieren (derzeit auf v1.7.9), damit es funktioniert.

@PerechicK , mit spätestens Entwicklungskanal ?

DEV-Kanal, wie er heute hier erscheint: https://flutter.dev/docs/development/tools/sdk/releases?tab=windows

Ich weiß immer noch nicht, seit welcher Version dieses Problem behoben ist.

Wenn ich etwas anderes als den Stable-Zweig verwende, stoße ich auf eines meiner Plugins, das den Fehler "Mit Methoden müssen im ausgibt , der mit diesem Flatter-SDK-Commit https://github eingeführt wurde. com/flattern/engine/commit/2c9e37c34e79475bbde7c8163eb5e56cdb9662a1.

Gibt es eine Möglichkeit, das 64-Bit-Appbundle zu erstellen, während der stabile Zweig 1.5.4-hotfix.2 verwendet wird?

@uj Dieses Problem https://github.com/flutter/flutter/issues/33562 könnte mit Ihrem Fehler zusammenhängen, wenn Sie firebase_database verwenden .

und laut Flutter Docs kein 64bit in 1.7.4+ eingeführt

Nein, es ist nicht firebase_database, sondern OneSignal, aber ihre einzige Lösung besteht darin, "den stabilen Zweig von Flutter zu verwenden".

Gibt es eine Möglichkeit, das 64-Bit-Appbundle zu erstellen, während der stabile Zweig 1.5.4-hotfix.2 verwendet wird?

@uj Auch wenn Sie kein 64-Bit-Appbundle mit 1.5.4-hotfix.2 erstellen können, können Sie 2 APKs erstellen, eine mit 32-Bit, eine mit 64-Bit. Laden Sie beide APKs in den Google Store hoch, um die Warnung zu beheben.

Flutter 1.5.4-hotfix.2 Appbundle zielt derzeit auf Android-Arm ab, der nur nativen 32-Bit-Code erstellt ( flutter build appbundle -h ). Um dies zu ändern, führen Sie flutter build appbundle --target-platform=android-arm64 , um das Standardziel zu ändern.

Dies ist jetzt live im Beta-Kanal, in der Version v1.7.8+hotfix.2

@tvolkert - ausgezeichnete Neuigkeiten, danke. Würden Sie genauer sagen, wann wir den Fix live in stable erwarten könnten, zB ein Datum, an dem dies geschehen wird?

@angel1st https://en.wikipedia.org/wiki/Forward-Looking_statement 🙂

(wir arbeiten daran, dass es so schnell wie möglich passiert)

@tvolkert -
Abgesehen davon schätze ich die Bemühungen und Ergebnisse der letzten Monate sehr, aber ich hoffe, Sie können sich in unsere Lage versetzen und sehen, wie die Dinge aus dieser Perspektive aussehen. Danke für das Verständnis und alle bisherigen Bemühungen!

@ angel1st absolut. Laut der früheren Ankündigung wollen wir dies bis Anfang Juli (also sehr bald) stabilisieren - ich kann das genaue Datum einfach nicht vorhersagen.

Ich habe dieses Problem in Unity 2017.4.20 oder 2019.1.2 . Wie kann ich es lösen? Dies
ist in Schlag-Link: https://stackoverflow.com/questions/56687339/what-is-this-error-in-build-adroid-and-build-app-bundle-in-unity-2017-4-17 bitte um Hilfe mich Weil ich seit 2 Monaten in diesem Problem bin danke

Ich hoffe, dass dieses Problem so schnell wie möglich gelöst wird. Die Frist ist knapp

@DoubleHub Sie können zum Beta-Kanal wechseln, um das
Oder warten Sie, bis die stabile Version am 8. Juli veröffentlicht wird.

@ abc873693 Ich habe darüber gelesen, ich denke, ich werde auf eine stabile Version warten. Ich freue mich, dass dieses Problem endlich offiziell gelöst ist!

@abc873693 Beim Versuch, Android-Apps über den _beta_-Kanal im Play Store zu veröffentlichen, sind Probleme aufgetreten. Pre-Launch-Berichte zeigten Warnungen für die Barrierefreiheit. Es scheint, dass die App nicht über den Begrüßungsbildschirm hinausgegangen ist. Alle Screenshots für alle Geräte blieben auf dem Begrüßungsbildschirm.

Die Lösung für mich bestand darin, einfach zum STABLE-Kanal zu wechseln und das App-Bundle mit dem Flag --target-platform zu erstellen.

Hallo zusammen,

v1.7.8+hotfix.2 wurde für den stabilen Kanal freigegeben, daher ist dieser Fix jetzt in allen Kanälen verfügbar. Vielen Dank an alle für Ihre Geduld und Hilfe auf dem Weg!

@tvolkert Danke! Ich habe gerade bestätigt, dass die Beobachtung, die ich hier erwähnt

@tvolkert wie wendet man dieses v1.7.8+hotfix.2 auf ein bestehendes Projekt an? Muss ich alles neu erstellen?

@jaasaria Bei diesem Problem geht es darum, Ihre App für die Veröffentlichung zu diesem Link

@jaasaria einfach ausführen: $ flutter channel stable && flutter upgrade

@MaikuB Ich habe meine src-Datei vor einem Monat erstellt und jedes Mal, wenn ich mein Projekt erstelle, muss ich den Befehl flutter build appbundle --target-platform=android-arm64 anstelle von flutter build appbundle ausführen, um einen Playstore x64-Fehler zu vermeiden.

@dblokhin Ich wurde gerade aktualisiert und zum Glück ist mein Projekt nicht kaputt

Danke @juliengit2 , flutter build appbundle funktioniert.

Erwähnenswert ist auch die Flatter-Version, da ich bis jetzt v1.5.0 hatte und es nicht funktionierte.
Ich musste aktualisieren (derzeit auf v1.7.9), damit es funktioniert.

Danke für die Warnung!

Ich habe flatter Version 1.7.8 + Hotfix.3 wird "flatter build appbundle" mit app.aab mit 32 und 64 Bit sowohl resultieren?

seltsam, ich habe es mit 1.7.8+hotfix.3 mit channel stable versucht und bekomme wieder die Playstore-Warnung:

"Diese Version entspricht nicht den 64-Bit-Anforderungen von Google Play..."

beim Hochladen eines Bundles nach: _flatter build appbundle_

Ich habe auch versucht, das Flattern zu verbessern, aber das gleiche Ergebnis.
und mit einer neuen Flutter-Installation: gleiches Ergebnis

Hier ist meine Konf:
m

Irgendeine Idee??

@juliengit2 Öffnen Sie die Datei .aab als normale ZIP-Datei, gehen Sie in den Ordner base/lib und prüfen Sie, ob es die Ordner armeabi-v7a und arm64-v8a

Ich habe es mit meiner App "flatter build appbundle" versucht. Der lib-Ordner enthält sowohl v8a als auch v7a. Kann ich das Update jetzt pushen, ich möchte nicht, dass eine weitere Warnung an meine E-Mail kommt.

Ein weiterer ähnlicher Fall einer fernen APK-Warnung https://github.com/flutter/flutter/issues/18494#issuecomment -509937209

Für diejenigen mit dem gleichen Problem habe ich in build.gradle entfernt:

ndk {
    abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
}

und die Warnung ist verschwunden.

(Wenn Sie die Abifilter behalten, erhalten Sie auch bei _flatter build appbundle_ immer noch "release is not compliant"

Hallo, ich habe mein Appbundle erfolgreich erstellt, aber wenn ich versuche, es in den Play Store hochzuladen, habe ich diese Fehlermeldung erhalten ...
Um ein Android App Bundle hochzuladen, müssen Sie bei der App-Signatur von Google Play angemeldet sein.
Exportieren Sie Ihren Schlüssel aus Android Studio. Wählen Sie im Menü Erstellen die Option Signiertes Bundle/APK generieren aus. Wählen Sie die Option Bundle und drücken Sie Weiter. Wählen Sie Verschlüsselten Schlüssel exportieren und drücken Sie Weiter.

Ich versuche, den verschlüsselten Schlüssel direkt aus dem Android-Modul zu exportieren, aber ich konnte den Vorgang nicht beenden, weil ich diesen Fehler erhalte

Prozess 'Befehl '/Users/oaacelasu/Documents/flatter/bin/flatter'' mit Nicht-Null-Ausgangswert 1 . beendet

bref Ich nehme an, das ist nicht der richtige Weg ... Gibt es eine andere Problemumgehung, um den verschlüsselten Schlüssel zum Registrieren der App direkt über den Befehl flatter build appbundle zu erhalten?

Ich habe versucht, Appbundle im Playstore zu verwenden,
aber in Android 6.0 arm 64 stürzte es beim Start ab, weil libflutter.so nicht gefunden werden konnte, und nachdem ich überprüft habe, war libflutter.so in aab arm 64 enthalten

@matthewlloyd , ich habe dies mit einem lokalen Chromebook reproduziert (obwohl dieses Chromebook am Montag möglicherweise für drei Wochen auf Reisen geht. Ich muss nachsehen). Ich denke, dass es sich gegen die meisten x86-Chromebooks reproduzieren sollte - ich denke, es gibt wahrscheinlich mehr davon als x86-Telefone.

Das Team hat kürzlich den Code verbessert, den der Dart-Compiler generiert, und ich frage mich, ob die Übersetzung damit vielleicht funktioniert hat. Probieren Sie es aus und lassen Sie es mich wissen. Andernfalls müssen Sie je nach Situation möglicherweise die JIT-Version für x86 erstellen, die normalerweise zum Debuggen/Profiling in Emulatoren verwendet wird.

@blasten , gibt es eine bestimmte Version von Dart, an die du gedacht hast? Reproduziert habe ich mit 2.3.1 (mit flattern 1.7.8+hotfix.2) Soll ich mit 2.4.0 testen?

Außerdem habe ich reproduziert, als wir einen Alpha-Build veröffentlichten. Ich muss noch prüfen, wie man ein Appbundle testet, ohne durch den Play Store zu gehen.

@wreppun Vielen Dank für den vorerst auf die Veröffentlichung eines AAB im neuen Stil für meine Benutzer verzichten, da das Problem anscheinend noch nicht behoben (oder sogar von Google anerkannt wurde!). Können Sie weitere Informationen zu dem jeweiligen Chromebook teilen und gibt es eine Möglichkeit, ein Absturzprotokoll zu erstellen?

@matthewlloyd Folgendes wurde im Play Store-

java.lang.UnsatisfiedLinkError: 
  at java.lang.Runtime.loadLibrary0 (Runtime.java:984)
  at java.lang.System.loadLibrary (System.java:1530)
  at io.flutter.view.FlutterMain.startInitialization (FlutterMain.java:122)
  at io.flutter.view.FlutterMain.startInitialization (FlutterMain.java:99)
  at io.flutter.app.FlutterApplication.onCreate (FlutterApplication.java:22)
  at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1024)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:5549)
  at android.app.ActivityThread.-wrap2 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1595)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6320)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:891)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:781)

Dies kann in einigen Ihrer (alten) Absturzprotokolle auftauchen, wenn sich einer Ihrer Benutzer für die Freigabe von Statistiken entschieden hat.

Das Gerät war ein HP Chromebook x360.

Es tut mir leid, dass dies nicht bei 100 % der Konfigurationen funktioniert. Wir arbeiten daran, eine bessere Testabdeckung für eine Vielzahl von SDKs und Geräten zu erreichen. In der Zwischenzeit werde ich einige Tests im Firebase-Testlabor einrichten.

An dieser Stelle denke ich, dass der effektivste Weg für uns, all diese Probleme zu beheben, darin besteht, neue Probleme einzureichen und auf diese zurück zu verlinken. @tvolkert und ich werden sicherstellen, dass jeder betrachtet wird, aber es würde uns helfen, wenn wir diese in separate Eimer sortieren und ihre Korrekturen einzeln verfolgen könnten.

Es ist sehr gut möglich, dass wir kleine Anpassungen am Dart-Compiler vornehmen müssen, die wir in der Vergangenheit für CPUs oder Emulatoren mit bestimmten Prozessor-Macken hatten. Ohne selbst auf einem x86-Chromebook getestet zu haben (was ich noch nicht getan habe), kann ich es nicht mit Sicherheit sagen.

Würden diejenigen, die Probleme haben, uns bitte helfen, die verbleibenden Probleme zu lösen, indem sie jeweils neue Probleme einreichen? Das wäre eine große Hilfe, um sicherzustellen, dass wir jeden einzelnen ansprechen. Dankeschön!

@wreppun Danke - Ich habe die

@blasten Keine Sorge, das ist toll. Wenn jemand zeigen kann, dass die neuen Appbundles auf einem Asus ZenFone 2-Gerät funktionieren, würde das ausreichen, um mich voranzubringen. Leider habe ich keinen Zugriff darauf, aber ich hoffe, dass die mobilen Testlabors von Google dies tun.

@matthewlloyd kein "Asus ZenFone" im Firebase-Testlabor. Welche SDK-Version? In den meisten Fällen kann das Problem durch Ausführen einer bestimmten Version des Android SDK reproduziert werden.

Welche SDK-Version? In den meisten Fällen kann das Problem durch Ausführen einer bestimmten Version des Android SDK reproduziert werden.

😂

Hallo Flutter-Team,
Ich möchte diesen Themenstatus betonen. Aus meiner Sicht gibt es zwei schwerwiegende Probleme:

  • Die aktuelle stabile Flatter-Version 1.7.8+hotfix.3 keine stabilen APKs - zumindest split-per-abi funktioniert nicht wie es sollte - arm32 hat ein Regressionsproblem und kann auf einigen arm32-Geräten nicht ausgeführt werden . Es ist noch nicht klar, wann dies behoben wird;
  • 1. August Deadline - in etwa einer Woche werden wir als Entwickler weder aktualisieren noch neue Flatter-Apps im Google Play Store veröffentlichen können - so einfach ist das. In Anbetracht des aktuellen Problems mit der Flatter-Version (wie oben erwähnt) und der verbleibenden Zeit halte ich es nicht für machbar, den Fix vor Ende des Monats im stabilen Kanal zu erwarten (es sei denn, jemand von euch hat einen Zauberstab :- ))

In Anbetracht der beiden oben genannten Probleme möchte ich folgenden Notfallplan vorschlagen, welcher IMO uns als Entwickler am besten dienen würde:

  • Rollback des stabilen Flatterkanals auf seine Version vor dem hotfix.2
  • Verschieben Sie die Frist für den 1. August um einige Monate – ich verstehe, dass dies eine gewisse Eskalation des Problems erfordert, aber ich hoffe, Sie werden verstehen, wie schwerwiegende Auswirkungen es haben könnte, wenn die Entwickler aufgrund von Problemen mit dem Flatter-Framework nach dem 1. August keine zuverlässige Flatter-App veröffentlichen können.

Ich kann nur in meinem Namen sprechen, aber ich habe Kunden mit Verträgen und habe mich entschieden, von React Native zu Flutter zu wechseln, da ich der Meinung war, dass Google ihre eigenen Produkte besser unterstützen würde. Ich habe Projekte im Gange und Anträge zu unterstützen.
Jetzt befinde ich mich in einem absurden Fall, wenn Google mich zwingt, die 64-Bit-APK-Version zu veröffentlichen und gleichzeitig Google mir nicht das Tool dazu zur Verfügung stellt (und ja, ich weiß, dass das Flutter-Team nicht dasselbe ist wie Google Play Team, aber wo ich herkomme - Sie sind dieselbe Geschäftseinheit).
Wenn Google nicht rechtzeitig liefert, wird dies zu einem starken Zurückdrängen von Flutter führen, da jeder Tag nach dem 1. August die Glaubwürdigkeit von Framework schwindet.
Ich entschuldige mich, wenn meine Worte etwas stärker klingen, ich hoffe nur, dass Sie sich im Moment in meine Lage versetzen können.

Jeder - bitte stimmen Sie darüber ab, und wir hoffen, dass unsere Stimme gehört wird!

Dem stimme ich auch zu... Aber als Notfallplan würde ich vorschlagen, nicht zur vorherigen Version zurückzukehren, sondern stattdessen zum Kanal dev wechseln....

Aus meiner persönlichen Erfahrung war es mir auch anfangs nicht angenehm, den dev Kanal i zu benutzen. Ich dachte an zu kleben stable Kanal, weil Sie wissen, seine stabile! ... Aber jetzt habe ich mit dev Kanal und die Freigabe Anwendungen mit App - Bundles auf Play Store ohne Frage .. ..

Die Situation sollte nicht eintreten, da es sich bei beiden um Google-Produkte handelt ...

Was ich vorgestellt habe, ist nur eine einfachere Problemumgehung, da Sie mit aab s und nicht apk s mit dem Pushen von Updates beginnen können, was von Google vorgeschlagen wird ...

@angel1st gleiches Problem, gleiche Probleme, gleiche Schuhe
@sulaysumaria, wenn wir zum
Denn weder der Master-Kanal scheint zu funktionieren

Was ich vorgestellt habe, ist nur eine einfachere Problemumgehung, da Sie mit dem Pushen von Updates mit aabs und nicht mit apks beginnen können, was von Google vorgeschlagen wird ...

@sulaysumaria - es ist nicht so einfach, wie es aussieht, glauben Sie mir ... Auch der Wechsel zum Entwicklungskanal scheint zu einigen Komplikationen mit Paketen und Plugins von Drittanbietern zu führen, die zu verschiedenen Problemen führen.

@campioncino Ich denke ja, weil ich noch nie mit diesem Problem konfrontiert war .... Ich baue einfach das Release-Appbundle und lade es in den Play Store hoch ... Es werden nie Warnungen angezeigt .... und die App funktioniert einwandfrei, wenn sie aus dem Play Store installiert wird ( zumindest das, was mein Kunde bisher verwendet...)

@angel1st , kann ich verstehen.. in diesem Fall ist ein

@sulaysumaria Ich hatte dieses Problem auch noch nie ... bis zum letzten Build.
Ich werde es versuchen, aber es ist nicht so einfach zu testen, da es nur auf einigen Geräten passiert.

Zum Beispiel auf Samsung Galaxy Tab 2 7.0 P3110, Android 4.2.2 und auf einigen anderen alten Tablets mit Android 4.1.2

Ohhh... Meine App ist sicher nicht für Tablets... Lieber mal testen...

Hallo zusammen,

Hier der aktuelle Stand:

  1. Es gibt Hinweise darauf, dass https://github.com/flutter/flutter/issues/35838 Android 4.2 und früher betrifft, was bedeutet, dass es ~3% der Android-Telefone betrifft. Wir arbeiten mit dem betroffenen Menschen auf dem Fehler , den Umfang der Lösung zu identifizieren und mögliche Neben Probleme aufzuspüren , die wahrscheinlich nur einige Anwendungen (wie ein möglichen unabhängigen Fehler in dem Affekt Dart VM , die auf allen apps nicht manifest tun). Basierend auf dieser Untersuchung und deren Schlussfolgerung werden wir entscheiden, ob es besser ist, die aktuelle stabile Version zu patchen oder eine neue Version durch die Kanäle zu stabil zu pushen.

  2. Wenn jemand lieber von einer früheren Flutter-Version bauen und 32- und 64-Bit-APKs manuell erstellen möchte, kann er dies tun, indem er eine frühere Flutter-Version hier herunterlädt . Das Zurücksetzen unserer stabilen Version ist keine Option – dies würde weit mehr Probleme verursachen als lösen.

  3. Wenn jemand Probleme beim Erstellen für Android hat _andere_ als https://github.com/flutter/flutter/issues/35838 , reichen Sie bitte ein separates Problem ein und senden Sie mir ein CC, da wir solche Probleme sehr gerne aufspüren möchten.

  4. Unabhängig davon arbeiten wir aktiv daran, unsere Testmatrix zu erweitern, um Probleme auf einer größeren Vielfalt von Geräten / Android-Versionen früher im Prozess besser erkennen zu können (damit Fehlerberichte nicht unsere erste Verteidigungslinie sind).

@tvolkert - danke für die Rückmeldung. Nur um sicherzustellen, dass wir auf der gleichen Seite sind - ein Zurücksetzen auf die vorherige Flutter-Version ist bis zum 1. August nicht sinnvoll. Die

@angel1st wäre diese Option für Ihren Fall geeignet?

  1. Setzen Sie das Flatter-SDK auf v1.5.4-hotfix.2 zurück ( flutter version v1.5.4-hotfix.2 )
  2. Erstellen Sie 2 separate APKs (eine auf 32-Bit flutter build apk --target-platform android-arm und eine auf 64-Bit flutter build apk --target-platform android-arm64 )
  3. Laden Sie diese beiden APKs im Google Play Store hoch

Ich weiß, dass es eine Problemumgehung ist, aber zumindest löst es sowohl das Stabilitätsproblem als auch das "Warnungsproblem".

@truongsinh - danke für den Vorschlag - es lohnt sich, darüber Änderungen wie im vorherigen Vorschlag erfordert app gradle Änderungen?

@angel1st solange Sie die gesamte App in Flutter haben (dh nicht https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps) und Sie nichts in Gradle geändert haben Dateien (dh Vanilla-Dateien von flutter create ), glaube ich, dass wir nichts tun müssen.

Sie können den Schnellcheck selbst durchführen (vorausgesetzt, Version "3.4.5" folgt https://github.com/flutter/flutter/issues/31922#issuecomment-512292798, meine persönliche Wahl des Formats für "Build-Nummer" ist bbxxyyzz , wobei bb nur die 32- oder 64-Bit-Kennung ist, xx Major, yy Minor, zz ist patch , aber es gibt auch andere empfohlene Formate, siehe https://developer.android.com/google/play/publishing/multiple-apks#using-a-version-code-scheme):

  • flutter create hello_world
  • flutter build apk --target-platform android-arm --build-number 32030405 --build-name=3.4.5
  • mv build/app/outputs/apk/release/app-release.apk build/app/outputs/apk/release/app-release-32.apk
  • flutter build apk --target-platform android-arm64 --build-number 64030405 --build-name=3.4.5
  • mv build/app/outputs/apk/release/app-release.apk build/app/outputs/apk/release/app-release-64.apk

Ich füge die 2 APKs hier ein. Sie funktionieren mit meinem Pixel 2. Auch wenn wir uns die APK-Analyse ansehen, können wir deutlich sehen, dass jedes APK unterschiedliche libflutter.so und 4 Snapshot/Aot-Dateien hat

Screen Shot 2019-07-17 at 1855 27

app-release-32.apk.zip
app-release-64.apk.zip

Nur eine Anmerkung zum Hochladen von zwei APKs ... Google erlaubt nicht das Hochladen mehrerer Dateien mit derselben Build-Nummer, daher möchten Sie möglicherweise die Build-Nummer ändern, bevor Sie eine APK für 64-Bit erstellen.

Nur eine Anmerkung zum Hochladen von zwei APKs ... Google erlaubt nicht das Hochladen mehrerer Dateien mit derselben Build-Nummer, daher möchten Sie möglicherweise die Build-Nummer ändern, bevor Sie eine APK für 64-Bit erstellen.

Ah, das stimmt (ref https://developer.android.com/google/play/publishing/multiple-apks#Rules) . Stellen Sie einfach sicher, dass für jede Version die Build-Nummer von 64-Bit höher ist als 32-Bit (ich habe mein vorheriges Beispiel https://github.com/flutter/flutter/issues/31922#issuecomment-512223030 aktualisiert).

Hey, ich erhalte eine Fehlermeldung, wenn ich versuche, mit appbundle . flutter build apk funktioniert gut, aber ich möchte eine neue Version im Play Store veröffentlichen. Kann mir jemand helfen was der Grund sein könnte?

Die Ausgabe von flutter build appbundle --target-platform android-arm,android-arm64 --flavor my_flavor --release -t "bin/main.dart ist die folgende:

Initializing gradle...                                              0,6s
Resolving dependencies...                                           2,0s
Running Gradle task 'bundleMy_AppRelease'...                   
Running Gradle task 'bundleMy_AppRelease'... Done          1,9s
Gradle build failed to produce an Android bundle package.

Leider ist die Fehlermeldung nicht wirklich hilfreich. Auch die Ausgabe von Flatter Doctor:

[✓] Flutter (Channel stable, v1.7.8+hotfix.3, on Mac OS X 10.14.5 18F132, locale de-DE)
    • Flutter version 1.7.8+hotfix.3 at /Users/tom/development/flutter
    • Framework revision b712a172f9 (2 weeks ago), 2019-07-09 13:14:38 -0700
    • Engine revision 54ad777fd2
    • Dart version 2.4.0

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/tom/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.3, Build version 10G8
    • CocoaPods version 1.6.1

[✓] iOS tools - develop for iOS devices
    • ios-deploy 1.9.4

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 36.1.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[✓] Connected device (1 available)
    • iPhone Xʀ • 095B1A07-E138-4A80-9783-8CA36DC8049A • ios • com.apple.CoreSimulator.SimRuntime.iOS-12-4 (simulator)

• No issues found!

Bearbeiten
Wenn ich versuche, --split-per abi verwenden, schlägt das Gebäude auch mit flutter build apk fehl.

@wreppun Danke - Ich habe die

@blasten Keine Sorge, das ist toll. Wenn jemand zeigen kann, dass die neuen Appbundles auf einem Asus ZenFone 2-Gerät funktionieren, würde das ausreichen, um mich voranzubringen. Leider habe ich keinen Zugriff darauf, aber ich hoffe, dass die mobilen Testlabors von Google dies tun.

Sogar ich habe ein Problem mit Asus Zenfone. Wenn ich flutter build apk läuft die App auf dem Telefon. Aber wenn ich es mit Appbundle in den App Store hochlade, bewegt es sich nicht vor dem Begrüßungsbildschirm.

Irgendeine Lösungsmöglichkeit ??

Ich habe versucht, eine neue Version einer meiner Anwendungen (Apps) im "Play Store" zu kompilieren und zu veröffentlichen, aber ich hatte einige Probleme.

1-) Wenn ich 32 und 64 Bit hochlade, wird die Site aufgrund der 32-Bit-Version abgelehnt.

2-) Wenn ich nur 32 Bit hochlade, lehnt die Site ab, da ich die 64 Bit brauche.

3-) Wenn ich nur 64 Bit hochlade, funktioniert die Seite, aber meine Kunden haben vielleicht nicht das 64 Bit Android. In meinem Handy zum Beispiel verwende ich dieselbe App, aber in meinem Handy funktioniert es nur, wenn ich die apk 32 Bit verwende. Wenn ich die 64-Bit-APK in meinem Handy installiere, stoppt es im Splash-Screen.

Wie muss ich jetzt loslassen??

Tigerclaw1980 verwendet Flatter-Appbundle-Option

Tigerclaw1980 verwendet Flatter-Appbundle-Option @MoacirSchmidt

Ich habe Delphi Beta verwendet, um APK-Dateien für 32 und 64 Bit zu erstellen. Ich weiß nicht, ob diese Option verfügbar ist

Ich habe versucht, eine neue Version einer meiner Anwendungen (Apps) im "Play Store" zu kompilieren und zu veröffentlichen, aber ich hatte einige Probleme.

1-) Wenn ich 32 und 64 Bit hochlade, wird die Site aufgrund der 32-Bit-Version abgelehnt.

2-) Wenn ich nur 32 Bit hochlade, lehnt die Site ab, da ich die 64 Bit brauche.

3-) Wenn ich nur 64 Bit hochlade, funktioniert die Seite, aber meine Kunden haben vielleicht nicht das 64 Bit Android. In meinem Handy zum Beispiel verwende ich dieselbe App, aber in meinem Handy funktioniert es nur, wenn ich die apk 32 Bit verwende. Wenn ich die 64-Bit-APK in meinem Handy installiere, stoppt es im Splash-Screen.

Wie muss ich jetzt loslassen??

@Tigerclaw1980 hast du diesen Fehler

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen