Flutter: Mendukung bundel aplikasi dengan binari 32-bit dan 64-bit di dalamnya

Dibuat pada 1 Mei 2019  ·  194Komentar  ·  Sumber: flutter/flutter

Peringatan

Rilis ini tidak sesuai dengan persyaratan Play 64-bit.

APK atau App Bundle berikut tersedia untuk perangkat 64-bit, tetapi hanya memiliki kode asli 32-bit: {version code}.

Mulai 1 Agustus 2019, semua rilis harus mematuhi persyaratan Play 64-bit.

Sertakan kode asli 64-bit selain kode asli 32-bit di aplikasi Anda. Gunakan format publikasi Android App Bundle untuk memastikan secara otomatis bahwa setiap arsitektur perangkat hanya menerima kode asli yang diperlukan. Belajarlah lagi

Peringatan ini muncul saat mencoba memublikasikan aab dibuat oleh flutter build appbundle ke Play Store sejak hari ini .

Apakah ini sesuatu yang perlu saya khawatirkan atau akankah Flutter secara otomatis menyelesaikannya, yaitu apakah ini sudah direncanakan untuk diselesaikan tepat waktu?

crowd engine waiting for PR to land (fixed)

Komentar yang paling membantu

Halo tim Flutter,
Saya ingin menekankan pada status topik ini. Dari sudut pandang saya, ada dua masalah serius:

  • Versi flutter stabil saat ini 1.7.8+hotfix.3 tidak membuat apk yang stabil - setidaknya split-per-abi tidak berfungsi sebagaimana mestinya - arm32 memiliki masalah regresi dan tidak dapat berjalan di beberapa perangkat arm32 . Belum jelas kapan ini akan diperbaiki;
  • Batas waktu 1 Agustus - dalam waktu sekitar seminggu kami sebagai pengembang tidak akan dapat memperbarui atau merilis aplikasi flutter baru ke Google Play Store - sesederhana itu. Mempertimbangkan masalah versi flutter saat ini (seperti yang disebutkan di atas) dan waktu yang tersisa, saya rasa tidak layak untuk mengharapkan perbaikan di saluran stabil sebelum akhir bulan (kecuali seseorang dari kalian memiliki tongkat ajaib: - ))

Mempertimbangkan dua masalah di atas, saya ingin menyarankan rencana kontingensi berikut, yang IMO akan paling baik melayani kami sebagai pengembang:

  • Kembalikan saluran stabil flutter ke versinya sebelum hotfix.2
  • Tunda batas waktu 1 Agustus selama beberapa bulan - Saya mengerti ini akan memerlukan beberapa eskalasi tentang masalah ini, tetapi saya harap kalian akan memahami betapa seriusnya dampak yang mungkin terjadi jika pengembang tidak dapat merilis aplikasi flutter yang andal setelah 1 Agustus karena masalah kerangka kerja flutter.

Saya hanya dapat berbicara atas nama saya, tetapi saya memiliki klien dengan kontrak dan saya memutuskan untuk pindah dari React Native ke Flutter, karena saya yakin, Google akan memberikan dukungan yang lebih baik untuk produk mereka sendiri. Saya memiliki proyek yang sedang berjalan dan aplikasi untuk didukung.
Sekarang saya menemukan diri saya dalam kasus yang tidak masuk akal, ketika Google memaksa saya untuk merilis versi apk 64 bit dan pada saat yang sama Google tidak memberi saya alat untuk melakukan itu (dan ya, saya tahu tim Flutter tidak sama dengan Google Play tim tetapi dari mana saya berdiri - Anda adalah entitas bisnis yang sama).
Jika Google gagal memberikan tepat waktu, ini akan menyebabkan penolakan kuat dari Flutter, karena setiap hari setelah 1 Agustus akan menyusutkan kredibilitas kerangka kerja.
Saya minta maaf jika kata-kata saya terdengar sedikit lebih kuat, saya hanya berharap Anda dapat menempatkan diri Anda pada posisi saya untuk saat ini.

Siapa pun - silakan pilih ini, dan semoga suara kami didengar!

Semua 194 komentar

tidak

Saya mendapat peringatan yang sama. Dapatkah seseorang dari tim Flutter memberikan komentar, atau menjelaskan hal yang sama, dan apa yang dapat kami lakukan untuk memastikan bahwa appbundle yang dihasilkan dengan flutter build appbundle --release juga memiliki kode 64-bit. @zoechi Bisakah Anda memberi tahu kami sesuatu tentang itu?

Saya juga melihat ini. Berikut screenshotnya:
Screen Shot 2019-05-02 at 12 25 57 PM

Dan dokumentasi "pelajari lebih lanjut" ada di sini: https://developer.android.com/distribute/best-practices/develop/64-bit

Saya menantikan balasan dari tim Flutter.

Saya mendapat pesan peringatan ini hari ini juga.

Masalah yang sama di sini.

saya juga

saya juga

Apakah ada solusi untuk ini belum?

Lihat ini: https://github.com/flutter/flutter/issues/18494#issuecomment -477502287

Itu berhasil untuk saya.

tombol [mulai peluncuran ke pengujian internal] dinonaktifkan di halaman rilis aplikasi Konsol Google Play (layar tempat pesan peringatan 64bit di atas muncul)

persyaratan bundel 64bit sekarang menjadi penghenti acara untuk proyek flutter.

/ cc @mklim @cbracken

Tampaknya play store sudah mulai mengeluarkan peringatan yang dipicu jika menggunakan instruksi rilis default dari Flutter.
https://flutter.dev/docs/deployment/android

Dimungkinkan untuk mengirimkan APK untuk ARM 32 dan 64-bit dengan Flutter, hanya saja saat ini memerlukan beberapa langkah tambahan. Berbagai pendekatan untuk memecahkan masalah tersebut dibahas dalam:
https://github.com/flutter/flutter/issues/18494#issuecomment -477502287

Kami juga sedang mencari cara terbaik untuk memperbarui langkah template/alat/rilis default untuk menghindari peringatan ini.

Terima kasih atas kesabaran Anda.

@eseidelGoogle Koreksi saya jika saya salah, namun, saya pikir inti dari bundel aplikasi adalah mengemas semuanya menjadi satu file dan membiarkan Play Store hanya mengirimkan apk yang diperlukan ke setiap pengguna.

Seperti yang saya tunjukkan dalam pertanyaan awal saya, saya menggunakan flutter build appbundle . Dalam hal ini, solusi yang Anda usulkan tidak akan berlaku, bukan?

Kami mencoba flutter build appbundle kemarin dan mendapatkan pesan kesalahan dari play store bahwa itu adalah build debug ...

tentu saja itu juga perlu bekerja dalam skenario add2app di mana instruksi dari flutter.dev tidak digunakan melainkan Android studio build->Generate Signed APK digunakan

Terima kasih telah memberi label kritis

Kami baru saja membahas ini secara pribadi. @tvolkert akan menemukan seseorang untuk membantu mendorong ini ke penutupan.

Saya juga mendapatkan peringatan ini, apakah ada cara untuk default ke 64bit ?

Modifikasi kecil pada build.gradle dapat memaksa penyertaan lib asli 64bit di apk rilis dan aab - lihat di sini untuk solusinya

Demi Google, tolong beri kami visibilitas berapa banyak ponsel di luar sana yang masih menggunakan 32bit.
Jika Anda menambahkan lib 64bit dan 32bit, Anda meningkatkan ukuran apk akhir.

Saya memiliki proyek non-flutter, di mana saya membagi APK dengan ABI, jadi saya memiliki apk terpisah untuk 32bit dan 64bit untuk mengurangi ukurannya. Sekarang langkah ini sepertinya memaksa saya untuk meningkatkan ukuran apk ke depan.
Tapi kenapa ?

Saya tidak memiliki statistik tentang berapa banyak telepon 32bit saja yang ada di India/Afrika ... Saya yakin itu tidak ada apa-apanya di Eropa, AS, dan sebagian Asia.
Bagaimana dengan x86 / x86_64 vs armeabi / arm64-v8a ? Apakah kita perlu menambahkan libflutter.so untuk semua 4 ABI ke dalam apk produksi akhir?
.. juga mips ... apakah ada ponsel di luar sana yang masih menggunakan mips ? Hanya google yang tahu.

@VarolOkan Gunakan AAB dan biarkan google menghasilkan APK untuk semua kombinasi ABI & dpi layar yang dibutuhkan.

tombol [mulai peluncuran ke pengujian internal] dinonaktifkan di halaman rilis aplikasi Konsol Google Play (layar tempat pesan peringatan 64bit di atas muncul)

persyaratan bundel 64bit sekarang menjadi penghenti acara untuk proyek flutter.

@eseidelGoogle atau siapa pun - adakah yang bisa mengonfirmasi jika ini?
a) penghenti pertunjukan
atau b) peringatan sampai Agustus
lihat: https://forums.expo.io/t/warning-with-the-google-play-64-bit-requirement/22305
Dia menunjukkan ada beberapa kotak di sebelah kiri untuk dicentang agar berfungsi, dan jika peringatan mengatakan Agustus sepertinya masalah besar jika sebenarnya awal Mei.

Juga - sangat berguna untuk mengetahui apakah sebenarnya tidak ada mesin 32bit dan menggunakan abiFilter satu baris untuk lengan 64bit adalah opsi yang layak untuk mendukung 99,5% pengguna atau semacamnya; Saya melihat seseorang membersihkan setahun yang lalu "semua telepon di pasar" adalah 64bit... mungkin itu berarti ada banyak telepon lama?

Pemahaman saya adalah ini bukan show stopper, melainkan peringatan umum. Kami telah meminta @blasten untuk melihat apa yang dapat kami lakukan di sini untuk membuat pengaturan Flutter default menghindari peringatan ini. Saya berharap kami akan memiliki beberapa pembaruan dalam beberapa hari ke depan.

Seperti yang dikatakan @eseidelGoogle , saya akan menangani masalah ini. Sementara itu, sudahkah Anda mencoba mengikuti langkah-langkah berikut https://github.com/flutter/flutter/issues/18494#issuecomment -489807239?

Apakah ini bukan masalah lagi? https://github.com/flutter/flutter/issues/18494#issuecomment -482795450

Ini bukan showstopper. Saya mendapat peringatan tetapi dapat merilis aplikasi saya ke
playstore.

Kr Morten

Pada Selasa, 7 Mei 2019 pukul 17.46, Audrius Karosevicius [email protected]
menulis:

Apakah ini bukan masalah lagi? #18494 (komentar)
https://github.com/flutter/flutter/issues/18494#issuecomment-482795450


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/flutter/flutter/issues/31922#issuecomment-490135779 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AA4B4J5BY3BJVIELNEPC4N3PUGP7BANCNFSM4HJU7TZA
.

>

;-)
/Morten

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

Untuk meringkas:

1) Awal tahun ini Play menyampaikan kepada pengembang bahwa mereka akan memerlukan aplikasi yang diunggah ke toko untuk menyediakan versi 64-bit mulai Agustus (https://android-developers.googleblog.com/2019/01/get-your-apps-ready -untuk-64-bit.html). Minggu ini, Play Store mulai menampilkan pesan informasi untuk aplikasi yang diunggah untuk memberikan peringatan tentang persyaratan yang akan datang. Namun, persyaratan Play Store tidak berubah saat ini.

2) Persyaratan APK 64-bit yang dapat dipatuhi oleh referensi peringatan sekarang dengan sedikit upaya manual untuk memodifikasi file gradle dalam proyek Flutter: https://github.com/flutter/flutter/issues/18494#issuecomment - 489807239 untuk satu contoh bagaimana.

3) Kami sedang berupaya membuat perilaku default Flutter sesuai dengan pembaruan mendatang untuk pedoman Play seputar dukungan 64-bit tanpa upaya tambahan apa pun dari pengguna. Saya berharap pekerjaan itu akan selesai dalam beberapa hari/minggu ke depan, jauh sebelum tenggat waktu Agustus.

Jika saya melewatkan sesuatu di atas, jangan ragu untuk berkomentar atau menghubungi. Mohon maaf karena kami tidak memperbarui ini sebelum Play mengaktifkan peringatan. Terima kasih semua atas bantuan dan umpan balik Anda!

@eseidelGoogle

  1. Saya tidak dapat memublikasikan aplikasi yang dibuat oleh flutter build apk . Play Store tidak menerima build hanya 32bit di profil saya.
  2. Solusi dari #18494 (komentar) gagal pada perangkat 32bit seperti OnePlus One.

Menurut pendapat saya, itu adalah showstopper.

@eseidelGoogle

  1. Terselesaikan. Google Play tidak menerima build apa pun jika Rating dan Negara tidak dikonfigurasi. Hanya pesan yang menyesatkan.

Persyaratan APK 64-bit yang dapat dipatuhi oleh referensi peringatan sekarang dengan sedikit upaya manual untuk memodifikasi file gradle dalam proyek Flutter: #18494 (komentar) untuk satu contoh tentang caranya.

setelah beberapa jam percobaan & kesalahan saya __not__ dapat menghasilkan apk atau appbundle yang ditandatangani yang berisi libflutter.so 64-bit

satu-satunya libflutter.so yang termasuk dalam bundel adalah
armeabi-v7a (32-bit)
, ketika menggunakan
Android Studio 3.4
Build #AI-183.5429.30.34.5452501, dibangun pada 10 April 2019

menu: Build > Generate Signed Bundle / APK


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

keduanya gagal @ > Tugas: aplikasi: validasiSigningRelease GAGAL

@ciez Ini menghasilkan apk hanya 64bit untuk saya:

$ 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
ya, itu berhasil.
menemukan apa masalahnya: "~" di jalur ke keystore.jks perlu diganti dengan /home/user

maaf tentang alarm palsu.

tampaknya setiap bundel yang dibuat seperti ini hanya dapat menargetkan paling banyak 1 lengkungan?

Menunggu pembaruan Flutter karena solusinya baru saja merusak build saya.

@mulderpf solusi mana yang Anda terapkan, dan bagaimana build Anda rusak?

Lihat komentar ini untuk pembaruan terbaru dari tim Flutter.

Saya mendapat pembaruan: Saya memiliki ini di cabang saya!
Sarannya adalah menggunakan flutter build appbundle --release --target-platform=android-arm-all (disarankan untuk memisahkan APK dari kotak) atau flutter build apk --release --target-platform=android-arm-all di rilis mendatang.

Apakah ada orang di zona waktu PST yang mau mencobanya? Jika demikian, silakan hubungi Gitter atau Slack :)

@blasten Sayangnya saya tidak dapat menghasilkan appbundle dengan cabang Anda. Gradle gagal pada app:properties entah bagaimana, tetapi melihat kodenya tampaknya menjanjikan.
Sudahkah Anda berhasil memverifikasi bahwa flutter/engine akan memuat snapshot AOT dari direktori ./lib/ ? Melihat kode mesin, ia menggunakan aset di mana-mana... Jika ini berhasil, ini akan menyelesaikan masalah App Bundle secara keseluruhan, karena untuk saat ini mereka tidak memiliki dukungan penargetan direktori aset oleh ABI.

@SPodjasek benar, itu juga membutuhkan build lokal mesin, sehingga kelas di APK mencari snapshot baru.

@blasten Saya telah berhasil memperbaiki pohon build saya dan sekarang saya berhasil membangun App Bundle yang berisi snapshot AOT di 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

Dan saya bertanya-tanya apakah itu cukup untuk memodifikasi ini ...

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

untuk sesuatu seperti:

getContext().getApplicationInfo().nativeLibraryDir;

Tentu saja, itu tidak akan sesederhana itu, tetapi untuk mendapatkan gambaran umum...

Berikut cara mencoba flutter build appbundle dengan dukungan 32 dan 64 bit:

  1. Unduh flutter.jar dari https://drive.google.com/open?id=1yAkfhPKfhdd8MwW39qfkZDePc66SMA_z dan letakkan di bawah {flutterInstallationPath}/bin/cache/artifacts/engine/android-arm-release . Untuk memeriksa jalur instalasi Flutter, gunakan which flutter

Jika Anda ingin melihat perubahan pada FlutterMain.java, lihat: https://github.com/blasten/engine/commit/b3ab9def28a414ffa53bf10ad6a3249f31ed00e3

  1. Lihat tambalan dari cabang ini:
$ 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

Beri tahu saya apa yang Anda temukan.

+1

@danysz Alih-alih menulis +1, jika Anda telah meningkatkan masalah ini, itu akan lebih masuk akal (tidak ada perasaan kasar untuk Anda). Kepada orang lain, jika mereka membaca pesan ini, mohon jangan menulis "saya juga", "sama di sini", "+1", alih-alih upvote masalah ini.

Terima kasih!

@blasten Aplikasi gagal memulai:

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)

Ini masuk ke perangkat fisik saya dan perangkat Lab Uji 9/10 - kami memiliki hasil yang tidak konsisten untuk Pixel-Q-beta.

@danysz Alih-alih menulis +1, jika Anda telah meningkatkan masalah ini, itu akan lebih masuk akal (tidak ada perasaan kasar untuk Anda). Kepada orang lain, jika mereka membaca pesan ini, mohon jangan menulis "saya juga", "sama di sini", "+1", alih-alih upvote masalah ini.

Terima kasih!

selesai

@blasten Melihat melalui perubahan Anda, saya menemukan bahwa untuk aplikasi yang ada, seseorang perlu memodifikasi AndroidManifest.xml

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"/>

Namun tetap saja gagal...

@blasten

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

Sayangnya saya tidak dapat membuat appbundle dengan instruksi Anda. Gradle gagal pada app:properties entah bagaimana (setelah "Building flutter tool..." dan beberapa unduhan Android-arm-*....).

Tampaknya proses pengunduhan menimpa flutter.jar

@MoacirSchmidt Saya memiliki masalah serupa tetapi membersihkan direktori build ( flutter clean ) dan cache gradle ( ~/.gradle/caches & ${projectRoot}/android/.gradle ) membantu

Untuk orang yang mengalami masalah saat membuat apk 64-bit.
Pengaturan ini berhasil untuk saya.

build.gradle

jalankan flutter build apk --release --target-platform=android-arm

tambahkan kode versi

jalankan flutter build apk --release --target-platform=android-arm64

flutter build appbundle sekarang dalam master, apakah ada orang sukarela yang ingin mencobanya?

Untuk orang, seperti saya, yang takut mengubah file gradle – jika Anda hanya menginginkan versi 64 bit, flutter build apk --release --target-platform=android-arm64 berfungsi bahkan tanpa memodifikasi build.gradle.

@blasten Saya mencoba flutter build appbundle di saluran beta . Ketika saya mencoba mengunggah ke play store, saya masih mendapatkan kesalahan 32/64.

Saya tahu Anda mengatakan master tetapi saya masih memiliki beberapa kesalahan yang saya kerjakan di cabang itu. Hanya ingin memberi Anda info itu!

Saya juga mendapatkan peringatan ini!

Apakah ada cara untuk membuat bundel aplikasi untuk semua arsitektur?

Adakah pembaruan tentang cara memperbaikinya?

Saya menutup bug ini karena mengacu pada bundel aplikasi. Jika Anda beralih ke cabang master, Anda dapat menggunakan flutter build appbundle untuk menghasilkan bundel aplikasi yang mendukung arsitektur CPU 32 dan 64-bit. Jika Anda lebih suka atau tidak dapat menggunakan bundel aplikasi, ikuti utas ini untuk dukungan tambahan melalui APK gemuk.

@blasten - bisakah Anda memberikan semacam instruksi cara menggunakannya dari dalam Android Studio?
Ini konfigurasi flutter saya saat ini:

Ringkasan dokter (untuk melihat semua detail, jalankan flutter doctor -v):
[√] Flutter (Saluran stabil, v1.2.1, di Microsoft Windows [Versi 10.0.17763.503], lokal en-US)
[√] Rantai alat Android - kembangkan untuk perangkat Android (Android SDK versi 28.0.3)
[√] Android Studio (versi 3.4)

Kapan perubahan ini akan masuk ke cabang stable ?

@blasten apakah ini berfungsi dengan Add2App?

@blasten bagaimana cara menandatangani bundel aplikasi yang dibuat oleh flutter build appbundle?

@blasten apakah ini cara yang baik untuk menggunakan cabang master untuk aplikasi produksi?

@dblokhin Anda dapat menggunakan flutter channel master untuk beralih ke saluran master. Perhatikan bahwa ini sekarang juga tersedia di saluran dev.

@tvolkert - kerangka waktu kapan ini akan digabungkan ke cabang stable ?

@ angel1st saya akan menjadi tamu sekitar 3 bulan dari sekarang.

@truongsinh - mengingat tanggal 1 Agustus sekitar dua bulan dari sekarang, saya berharap adopsi lebih cepat, sebenarnya ...

@angel1st sudah stabil! Saya akan mencari tahu lebih banyak ...

@angel1st sudah stabil!

Apa kamu yakin akan hal itu? Stabil saat ini adalah 1.5.4-hotfix 2 ant tidak menghasilkan bundel dengan 32 dan 64. Atau apakah saya melewatkan sesuatu?

@shinayser belum, maaf. Saya akan mencari tahu lebih banyak dan memperbarui utasnya. Seperti yang disebutkan Todd, saluran master adalah satu-satunya pilihan saat ini.

Saya mencoba appbundle. Saya memiliki Flutter versi 1.6.1-pra di master
saluran.

Output dari bundel itu sekitar 12 MB yang tidak menghasilkan peringatan
dan ukuran APK individu sekitar 7. Sejauh ini semuanya baik-baik saja.

Tetapi ketika saya membuka aplikasi setelah memperbarui melalui Play Store aplikasi saya mendapat
terjebak di Layar Splash.

Saya tidak punya pilihan untuk kembali ke flutter build apk yang berfungsi dengan baik, tidak tahu bagaimana
dan mengapa.

Jadi saya rasa masalah ini belum selesai, karena meskipun peringatan
hilang dengan appbundle, begitu juga aplikasi itu sendiri. Appbundelnya adalah
membuat aplikasi tidak berguna karena macet di layar splash.

Dalam hal ini, jangan ragu untuk menghubungi saya langsung di Gitter: https://gitter.im/flutter/flutter. Jika memungkinkan, akan sangat membantu jika Anda dapat mengirim file .aab yang dihasilkan oleh alat tersebut.

Saya percaya kita membutuhkan penggunaan yang didokumentasikan dengan satu atau lain cara. Saya juga percaya bahwa penggabungan ini ke stable sebelum akhir Juni sangat penting jika tim Flutter ingin mempertahankan pengembang.

@angel1st kami bekerja keras untuk mempromosikan pekerjaan ini menjadi stable pada akhir Juni.

Beberapa pembaruan:

Kami dapat mereproduksi aplikasi yang macet di layar pembuka setelah menerapkan APK dari app bundle (dihasilkan menggunakan flutter build appbundle dari saluran master).

Ini tampaknya disebabkan oleh penempatan snapshot AOT kami ( vm-snapshot-data , vm-snapshot-instr , isolate-snapshot-data , isolate-snapshot-instr ) sebagai perpustakaan dalam /lib/{abi}/lib_{snapshot}.so untuk mendapatkan pemisahan ABI untuk bundel aplikasi.

EDIT : Akar penyebabnya ternyata adalah kode di penyemat Android mengharapkan direktori bernama flutter_assets di baris ini , tetapi perubahan terbaru saya untuk mendukung bundel aplikasi dinonaktifkan membuat direktori tersebut, yang menyebabkan aplikasi tidak pernah dimulai. Komit ini oleh @ jason-simmons https://github.com/flutter/engine/compare/7f4f52f95294...e8db5dfd52ee memperbaiki masalah.

Kesimpulan

Rencana saat ini adalah mengizinkan alat flutter untuk menghasilkan perpustakaan bersama ELF alih-alih snapshot AOT. Fitur ini baru saja ditambahkan ke Dart SDK di https://github.com/dart-lang/sdk/commit/af93ebcf4cb55ae5f0f39a183ad2d42ca13ae51f.

Artinya, kita akan mendapatkan pemisahan ABI untuk bundel aplikasi dan APK gemuk menggunakan perpustakaan nyata.

Saya akan memperbarui bug ini dan https://github.com/flutter/flutter/issues/18494 setelah masalah diperbaiki. Sementara itu, meneruskan --target-platform ke build appbundle akan memungkinkan Anda membangun app bundle tanpa memindahkan snapshot AOT ke lib/ .

Beberapa pembaruan:

Kami dapat mereproduksi aplikasi yang macet di layar pembuka setelah menerapkan APK dari app bundle (dihasilkan menggunakan flutter build appbundle dari saluran master).

Ini tampaknya disebabkan oleh penempatan snapshot AOT kami ( vm-snapshot-data , vm-snapshot-instr , isolate-snapshot-data , isolate-snapshot-instr ) sebagai perpustakaan dalam /lib/{abi}/lib_{snapshot}.so untuk mendapatkan pemisahan ABI untuk bundel aplikasi. Lagi pula, snapshot bukanlah perpustakaan nyata dan peretasan kami untuk mendapatkan perilaku ini tidak berhasil.

Rencana saat ini adalah mengizinkan alat flutter untuk menghasilkan perpustakaan bersama ELF alih-alih snapshot AOT. Fitur ini baru saja ditambahkan ke Dart SDK di dart-lang/ sdk@af93ebc .

Artinya, kita akan mendapatkan pemisahan ABI untuk bundel aplikasi dan APK gemuk menggunakan perpustakaan nyata.

Saya akan memperbarui bug ini dan #18494 setelah masalah diperbaiki. Sementara itu, meneruskan --target-platform ke build appbundle akan memungkinkan Anda membuat bundel aplikasi tanpa memindahkan snapshot AOT ke lib/ .

@blasten apakah ini akan berfungsi dengan baik ketika Anda memiliki perpustakaan lain yang menggunakan kode asli juga? Misalnya: VLC. Ini menghasilkan beberapa .so saat kita membangun APK.

Ya - Anda dapat menggunakan pustaka kode asli lainnya dalam APK Anda.

Dalam format pengemasan baru, aplikasi Flutter akan menyertakan pustaka mesin libflutter.so bersama dengan .so berisi data snapshot AOT yang dikompilasi dari kode Dart aplikasi Anda. Aplikasi dapat menambahkan pustaka .so tidak terkait dengan Flutter jika diperlukan.

FYI, perbaikan untuk masalah macet di layar splash harus di rilis saluran pengembang 1.7.0 (yang akan datang) (https://github.com/flutter/flutter/wiki/Bad-Builds#v161--- v167)

Halo semua. Perbaikan untuk masalah macet di layar splash telah mendarat di saluran dev - Anda akan melihatnya jika Anda flutter upgrade ke v1.7.0. Silakan mencobanya dan beri tahu kami jika Anda mengalami masalah dengan flutter build appbundle .

@tvolkert Tidak bekerja untuk saya sebelumnya dan tidak bekerja untuk saya sekarang. Baik di channel dev (1.7.0) maupun di channel master (1.7.1). Pembuatan aplikasi dengan flutter build appbundle mogok setelah dipublikasikan melalui Play Store dan menjalankannya di perangkat nyata.
Sunting: Ini berfungsi sekarang di saluran dev (1.7.0) setelah menghapus aplikasi dari perangkat dan menginstalnya kembali dari Play Store.
Sunting2: TIDAK berfungsi. Play Store sedikit lebih lambat dari biasanya saat mendistribusikan versi yang benar. Apa yang dapat saya lakukan untuk membantu reproduksi?

@masewo dapatkah Anda mengumpulkan batu nisan dari perangkat, bersama dengan versi Flutter apa yang dijalankan pada saat itu?

@jason-simmons @blasten ada lagi yang ingin Anda bantu melacaknya?

@tvolkert

batu nisan:

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)

berdebar:

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 , pernyataan inilah yang menyebabkan crash dalam kasus @masewo

@masewo kami tidak dapat mereproduksi

FYI, pengumuman berikut telah dikirim ke [email protected] mengenai dukungan 64-bit kami.

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

@tvolkert apakah tim juga bekerja untuk membuat https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps kompatibel dengan semua poin yang Anda daftarkan ?

  1. Berikan cara (secara default) untuk membangun app bundle yang mendukung 32-bit dan 64-bit. (sudah tersedia untuk diuji di saluran dev)

  2. Berikan cara (secara default) untuk membuat APK yang mendukung 32-bit dan 64-bit. (sedang berlangsung)

@truongsinh Ya, lihat komentar ini di PR yang tertunda: https://github.com/flutter/flutter/pull/33696#issuecomment -498934359

@masewo dan semua orang: kami dapat mereplikasi kerusakan yang dijelaskan di https://github.com/flutter/flutter/issues/31922#issuecomment -498541765 dan melacaknya.

tldr: tunggu sebentar - kami sedang melakukannya

Halo semua,

TLDR:

Kami telah mengidentifikasi masalah dengan mogok saat diunduh dari Play Store dan sedang memperbaikinya, untuk dikirimkan dalam jangka waktu yang sama seperti yang diuraikan di atas di https://github.com/flutter/flutter/issues/31922#issuecomment -498880614

Penjelasan tingkat tinggi

Bagi mereka yang tertarik, penjelasan yang agak panjang adalah bahwa dengan perangkat yang menjalankan Android Marshmallow atau yang lebih baru, Play Store akan mendeteksi aplikasi yang dikemas sebagai App Bundle yang berisi beberapa ABI -- dan akan menginstal aplikasi tersebut di perangkat dalam bentuk "split APK". Saat melakukan ini, file .so yang ada di dalamnya tidak diekstraksi dari arsip zip APK, yang berbeda dari perilaku APK non-split. Karena mekanisme Flutter engine

Solusinya adalah hanya dengan dlopen perpustakaan, dan Android mengabstraksi di mana perpustakaan berada (yaitu di dalam arsip atau tidak). Namun, file .so yang diperlukan tidak pernah menjadi pustaka yang sebenarnya - mereka hanyalah gumpalan data biner yang kami muat ke dalam Dart VM. Jadi sebagai bagian dari ini, kami membuatnya menjadi pustaka ELF (mis. https://github.com/dart-lang/sdk/commit/6d608fb52bc1926a73d986d73ab228b77cfb7ca2 dan https://github.com/flutter/flutter/pull/33696).

Halo semua,

Kami yakin semua perbaikan telah mendarat di tip-of-tree di saluran master . Jika Anda ingin mencobanya, berikut caranya:

  • flutter build appbundle

    Secara default, App Bundle berisi kode Dart Anda dan runtime Flutter yang dikompilasi untuk armeabi-v7a (32-bit) dan arm64-v8a (64-bit)

  • flutter build apk --split-per-abi

    Perintah ini akan menghasilkan dua APK:

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

  • flutter build apk

    Ini akan menghasilkan APK gemuk yang berisi kode Anda yang dikompilasi untuk semua ABI target. APK semacam itu akan berukuran lebih besar daripada rekan-rekan terpisahnya, menyebabkan pengguna mengunduh biner asli yang tidak berlaku untuk arsitektur perangkat mereka.

flutter build appbundle sekarang bekerja untuk saya. Terima kasih @tvolkert !

Dapat mengonfirmasi ini berfungsi (Setelah beralih ke master) di beberapa perangkat Android. Sungguh penyelamat, terima kasih.

Besar! Terima kasih pergi ke @blasten , @jason-simmons, dan @rmacnak-google - Saya hanya utusan

Terima kasih kepada semua tim Flutter dan kontributor atas respons yang begitu cepat. Mudah-mudahan, yang ini masuk ke saluran beta dalam waktu 1,5 bulan :)

@tomaszpolanski rencananya adalah untuk membuatnya menjadi beta pada akhir Juni dan stabil pada awal Juli

@tvolkert apakah ada flag perintah flutter build appbundle dapat kami berikan untuk menyertakan x86?

@athornz tidak dalam mode rilis atm. Lihat: https://github.com/flutter/flutter/issues/9253. Akan dimungkinkan untuk menambahkan snapshot AOT untuk x86_64 dalam waktu dekat.

Beralih ke cabang master memberi saya kesalahan berikut. Build stabil tetapi gagal menyertakan 64bit dalam bundel rilis.

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 , dapatkah Anda mengirim output lengkap flutter build appbundle -v (sebagai tautan Gist.github.com, untuk keterbacaan utas ini )?

@xinoxapps , saya tidak dapat build.gradle , yang mungkin atau mungkin tidak menyebabkan masalah. Apakah mungkin untuk mendapatkan kasus repro minimal? misalnya, coba hapus beberapa konfigurasi Gradle kustom tersebut hingga berhasil, lalu bagikan apa sebenarnya yang menyebabkan masalah tersebut. Ini adalah bagaimana saya mendefinisikan rasa:

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

Halo semua,

Perbaikan ini sekarang aktif di saluran dev , pada rilis v1.7.4 atau yang lebih baru.

Saya beralih ke bundel aplikasi dan mendorong ke Play Store, dan sebagian besar pengguna tampak senang. Namun, saya memiliki dua laporan bahwa aplikasi tidak memulai sama sekali pada perangkat x86 yang mendukung emulasi ARM, Asus ZenFone 2 ZE551ML: https://www.gsmarena.com/asus_zenfone_2_ze551ml-6917.php. Sayangnya pengguna belum dapat memberikan output adb logcat. Apakah format ELF baru dimaksudkan untuk bekerja pada perangkat seperti itu?

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

Beralih ke saluran master dan dev memberi saya kesalahan ini dengan 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 dapatkah Anda menyertakan tautan Gist.google.com dengan output flutter build appbundle -v , serta konten file android/build.gradle dan android/app/build.gradle ?

Saya beralih ke bundel aplikasi dan mendorong ke Play Store, dan sebagian besar pengguna tampak senang. Namun, saya memiliki dua laporan bahwa aplikasi tidak memulai sama sekali pada perangkat x86 yang mendukung emulasi ARM, Asus ZenFone 2 ZE551ML: https://www.gsmarena.com/asus_zenfone_2_ze551ml-6917.php. Sayangnya pengguna belum dapat memberikan output adb logcat. Apakah format ELF baru dimaksudkan untuk bekerja pada perangkat seperti itu?

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

ya, saya memiliki masalah yang sama. ini bekerja dengan flutter build appbundle dan sebagian besar perangkat menjalankan aplikasi saya dengan baik. tapi tidak untuk asus ini

@blasten Ya saya mengerti bahwa x86 asli tidak didukung, tapi saya pikir masalahnya di sini adalah bahwa bundel aplikasi ARM/ARM64 diinstal oleh Google Play ke perangkat x86 yang mengiklankan dukungan untuk ARM melalui terjemahan, tetapi appbundle baru entah bagaimana tidak bekerja dengan benar pada perangkat tersebut (mungkin karena format ELF baru membingungkan penerjemah ARM). Namun, APK ARM (non-ARM64) asli tampaknya berfungsi, sebagaimana dikonfirmasi dengan kembali ke cabang master berusia dua minggu (e1a784ae untuk lebih spesifik) dan mencatat bahwa dua pengguna yang melihat masalah sekarang memiliki aplikasi saya berjalan lagi di perangkat ZenFone 2 mereka. Ini akan mencegah saya meningkatkan ke v1.7.4.

@xinoxapps , dapatkah Anda mengirim output lengkap flutter build appbundle -v (sebagai tautan Gist.github.com, untuk keterbacaan utas ini )?

Ini berfungsi untuk saya sekarang di saluran dev. Apakah Anda masih memerlukan beberapa info?

@xinoxapps tidak - senang mendengarnya bekerja untuk Anda.

@darioielardi masalah sudah diperbaiki di master sekarang. Silakan jalankan flutter upgrade di saluran master.

@darioielardi masalah sudah diperbaiki di master sekarang. Silakan jalankan flutter upgrade di saluran master.

@blasten Saya telah beralih ke master dan mendapatkan kesalahan ini saat menjalankan flutter build appbundle
Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.

ini adalah gradle dan output penuh saya https://Gist.github.com/julindra/80cd2e588cf11bdd0df3f34239b07409

Halo semua,

Kami bertujuan untuk mendapatkan beberapa perbaikan bug lagi untuk add-to-app dan rasa - dan memotong rilis dev v1.7.5 . Karena itu, kami menunda promosi ke beta untuk mengambil perbaikan tersebut. Kami masih mengharapkan ini stabil di awal Juli.

flutter build appbundle bekerja untuk saya. Terima kasih banyak @tvolkert .

@julindra menambahkan -ignorewarnings ke 'proguard-rules.pro memperbaiki masalah itu. Saat ini kami tidak menyertakan paket android.arch.*. Pilihan lain adalah mengedit android/app/build.gradle dan menambahkan yang berikut:

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

cc @matthew-carroll

Saya mengunggah bundel app.aab ke play store. Peringatan untuk 64 bit yang hilang hilang tetapi aplikasi baru saja macet saat diluncurkan setelah menginstal dari play store. Ada saran?

Juga apakah aman menggunakan flutter build appbundle untuk rilis pada produksi?

@sulaysumaria dapatkah Anda memposting hasil menjalankan flutter doctor ?

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

Saya juga mencoba membuat apk dari bundel aplikasi dan menginstalnya. Itu juga macet saat diluncurkan.

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

Coba beralih ke saluran dev dan periksa.

Saya mencoba membangun saluran dev tetapi itu merusak salah satu dependensi saya. Saya akan mencoba mengomentarinya dan membangun untuk melihat apakah aplikasi berfungsi.

Juga apakah aman menggunakan saluran dev untuk rilis produksi?

Maaf. Saya akan lebih berhati-hati jika itu untuk produksi.

Saya akan membuat APK untuk saat ini. Meskipun Google menyarankan untuk mengunggah bundel alih-alih apk, jadi akan lebih baik jika ini diperbaiki pada rilis berikutnya di cabang stabil.

Saya menemukan ini menggunakan adb logcat:

[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'

Saya berada di saluran stable .

Solusi dari https://github.com/flutter/flutter/issues/19865 berhasil.

Saya juga harus menghapus bagian splits dari build.gradle.

Aplikasi berfungsi dengan baik sekarang ketika diinstal melalui bundletool. Saya akan mencoba mengunggah ke playstore dan memeriksa apakah semuanya berjalan dengan baik.

@sulaysumaria perbaikannya hanya tersedia di cabang master. Jika Anda stabil – seperti yang ditunjukkan pada output flutter doctor

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

perbaikan tidak diterapkan. Anda harus menunggu sampai perbaikannya stabil jika Anda ingin membangun dengan stabil. Sepertinya ada di sekitar 1.7.x sampai saat itu Anda perlu mengunggah apk secara terpisah.

Ohh... Terima kasih @pythoneer . Apakah Anda tahu kapan akan tersedia di saluran stabil?

@sulaysumaria tidak masalah. Disebutkan berkali-kali di utas ini

Kami masih mengharapkan ini stabil di awal Juli.

Ini berfungsi di saluran dev . Saya menggunakan flutter build appbundle --target-platform android-arm,android-arm64 dan mengunggah bundel ke play store dan itu berfungsi dengan baik.

@sulaysumaria - Anda harus menggunakan instruksi yang sudah disiapkan dengan saluran master atau dev .

@julindra menambahkan -ignorewarnings ke 'proguard-rules.pro memperbaiki masalah itu. Saat ini kami tidak menyertakan paket android.arch.*. Pilihan lain adalah mengedit android/app/build.gradle dan menambahkan yang berikut:

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

cc @matthew-carroll

Terima kasih. Saya hanya menggunakan saluran dev dan menambahkan -ignorewarnings , itu berfungsi dengan baik.

bekerja untuk saya dengan flutter build appbundle
https://github.com/flutter/flutter/issues/18494#issuecomment -489807239

@blasten apakah ini dapat ditutup pada saat ini, atau apakah ada pekerjaan yang tersisa?

@cbracken , saya pikir ini bisa ditutup sekarang atau setelah rilis stabil berikutnya.

Apakah Anda masih berencana untuk mengatasi masalah ketidakcocokan dengan perangkat ZenFone 2 dan perangkat x86 serupa yang memungkinkan pemasangan aplikasi ARM dari Play Store dan menggunakan libhoudini untuk menjalankannya?

Saya mencoba membangun saluran dev tetapi itu merusak salah satu dependensi saya. Saya akan mencoba mengomentarinya dan membangun untuk melihat apakah aplikasi berfungsi.

Juga apakah aman menggunakan saluran dev untuk rilis produksi?

Saya tidak pernah menggunakan cabang apa pun selain dev dan aplikasi saya bekerja dengan mulus. Jadi percayalah pada cabang itu tidak pernah mengecewakan. @sulaysumaria

@matthewlloyd kami mendengar dari tim Play Store bahwa lebih baik menambahkan biner x86 eksplisit daripada mencoba membuat biner yang ada berfungsi dengan baik dengan penerjemah arm->x86. - Namun, tim baru-baru ini meningkatkan kode yang dihasilkan oleh kompiler Dart, dan saya bertanya-tanya apakah itu mungkin membuat terjemahan berfungsi. Cobalah dan beri tahu saya. Jika tidak, tergantung situasinya, Anda mungkin perlu membangun versi JIT untuk x86, yang biasanya digunakan untuk debugging/profiling di emulator.

@blasten Terima kasih atas infonya. Ini membuat saya sedikit terikat karena saya sendiri tidak memiliki salah satu dari perangkat ini - hanya dua ulasan Play Store anonim dari pengguna ZenFone 2 yang tidak puas - jadi saya tidak punya cara untuk mengujinya. Risiko merusak sesuatu terlalu besar untuk mendorong keluar appbundle build lain sampai seseorang mengonfirmasi bahwa kode yang ditingkatkan benar-benar berfungsi pada perangkat tersebut. Kecuali jika ada cara untuk memberi tahu Play Store untuk mengecualikan perangkat tersebut, saya akan terus merilis build yang dibuat dengan versi lama Flutter (dan APK 32-bit), hingga diuji dan dikonfirmasi diperbaiki oleh Google, atau dikonfirmasi tidak lagi isu. Saya kira itu tidak akan sampai lebih banyak aplikasi didorong ke toko menggunakan format appbundle/.so baru. Aku akan menunggu...

bagi mereka yang masih mencari, inilah solusi yang berhasil untuk saya:

flutter build apk --split-per-abi
tidak berfungsi,, bahkan setelah mengedit build gradle
dari https://flutter.dev/docs/deployment/android#build -an-apk

sebagai gantinya, gunakan:

  1. flutter build appbundel
  2. lalu unggah app.aab

masalah diperbaiki untuk 32 dan 64 bit, dan peringatan 'rilis tidak sesuai dengan persyaratan Play 64-bit." telah hilang.

Terima kasih @juliengit2 , flutter build appbundle berhasil.

Perlu disebutkan versi flutter juga, karena saya memiliki v1.5.0 sampai sekarang dan tidak berfungsi.
Saya harus memperbarui (saat ini ke v1.7.9) untuk membuatnya berfungsi.

@PerechicK , maksud Anda saluran stabil atau saluran dev terbaru?

Saluran DEV, seperti yang muncul hari ini di sini: https://flutter.dev/docs/development/tools/sdk/releases?tab=windows

Saya masih tidak tahu sejak versi mana masalah ini diperbaiki.

Saat menggunakan apa pun selain cabang stabil, saya mengalami salah satu plugin saya yang melemparkan kesalahan "Metode yang ditandai dengan @UiThread harus dieksekusi di utas utama", yang diperkenalkan dengan komit sdk flutter ini https://github. com/flutter/engine/commit/2c9e37c34e79475bbde7c8163eb5e56cdb9662a1.

Apakah ada cara untuk membangun appbundle 64-bit saat menggunakan cabang stabil 1.5.4-hotfix.2?

@uj masalah ini https://github.com/flutter/flutter/issues/33562 mungkin terkait dengan kesalahan Anda jika menggunakan firebase_database .

dan tidak ada 64bit yang diperkenalkan di 1.7.4+ menurut Flutter Docs

Tidak, ini bukan firebase_database, ini sebenarnya OneSignal, tetapi satu-satunya solusi mereka adalah "menggunakan cabang stabil Flutter"

Apakah ada cara untuk membangun appbundle 64-bit saat menggunakan cabang stabil 1.5.4-hotfix.2?

@uj meskipun Anda tidak dapat membangun appbundle 64-bit dengan 1.5.4-hotfix.2 , Anda dapat membuat 2 apk, satu dengan 32-bit, satu dengan 64-bit, unggah kedua apk ke Google Store untuk menyelesaikan peringatan.

Flutter 1.5.4-hotfix.2 appbundle saat ini menargetkan android-arm yang hanya membuat kode asli 32bit ( flutter build appbundle -h ). Untuk mengubah ini jalankan flutter build appbundle --target-platform=android-arm64 untuk mengubah target default.

Ini sekarang ditayangkan di saluran beta, dalam rilis v1.7.8+hotfix.2

@tvolkert - berita bagus, terima kasih. Apakah Anda akan lebih spesifik ketika kami mengharapkan perbaikan langsung di stable , misalnya tanggal kapan ini akan terjadi?

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

(kami sedang berusaha untuk mewujudkannya sesegera mungkin)

@tvolkert - mengingat fakta bahwa kami sekitar tiga minggu dari tenggat waktu Google untuk apk 64 bit, saya juga mengharapkan tenggat waktu dari pihak Anda. Kami juga sebagai pengembang akan membutuhkan beberapa waktu antara rilis Anda dan tenggat waktu yang disebutkan di atas sehingga kami dapat membangun, menguji, dan merilis aplikasi kami tanpa mengganggu klien kami.
Selain itu, saya sangat menghargai upaya dan hasil selama beberapa bulan terakhir, tetapi saya harap Anda dapat menempatkan diri Anda pada posisi kami dan melihat bagaimana hal-hal terlihat dari perspektif itu. Terima kasih atas pengertian dan semua upaya Anda sejauh ini!

@angel1st benar-benar. Per pengumuman sebelumnya , kami bertujuan untuk membuat ini stabil pada awal Juli (segera) - Saya tidak dapat memprediksi tanggal pastinya.

Saya memiliki masalah ini di unity 2017.4.20 atau 2019.1.2 , Bagaimana cara mengatasinya? ini
ada di tautan pukulan: https://stackoverflow.com/questions/56687339/what-is-this-error-in-build-adroid-and-build-app-bundle-in-unity-2017-4-17 tolong bantu saya Karena saya dalam masalah ini selama 2 bulan terima kasih

Berharap untuk melihat yang satu ini diselesaikan sesegera mungkin. Deadlinenya ketat

@DoubleHub Anda dapat mengubah ke saluran beta untuk menyelesaikannya.
Atau tunggu rilis versi stabil pada 8 Juli.

@abc873693 saya membacanya, saya pikir saya akan menunggu versi stabil. Saya senang bahwa masalah ini akhirnya diselesaikan secara resmi!

@abc873693 Saya mengalami masalah saat mencoba memublikasikan aplikasi Android ke play store menggunakan saluran _beta_. Laporan pra peluncuran menunjukkan Peringatan untuk Aksesibilitas. Tampaknya aplikasi tidak melewati Layar Splash. Semua tangkapan layar untuk semua perangkat tetap berada di layar pembuka.

Solusi bagi saya adalah cukup beralih ke saluran STABLE dan buat bundel aplikasi menggunakan flag --target-platform.

Halo semua,

v1.7.8+hotfix.2 telah dirilis ke saluran stabil, jadi perbaikan ini sekarang tersedia di semua saluran. Terima kasih semuanya atas kesabaran dan bantuan Anda selama ini!

@tvolkert Terima kasih! Saya baru saja mengkonfirmasi bahwa pengamatan yang saya sebutkan di sini tidak ada lagi dengan saluran stabil!

@tvolkert bagaimana menerapkan v1.7.8+hotfix.2 pada proyek yang ada? Apakah saya perlu membuat ulang lagi?

@jaasaria masalah ini seputar pembuatan aplikasi Anda untuk dirilis. jika Anda stabil, Anda perlu memutakhirkan instalasi flutter Anda. masalah yang dilaporkan di sini adalah seputar pembuatan bundel aplikasi sesuai tautan ini

@jaasaria jalankan saja: $ flutter channel stable && flutter upgrade

@MaikuB Saya membuat file src saya sebulan yang lalu dan setiap kali saya membangun proyek saya, saya perlu menjalankan perintah flutter build appbundle --target-platform=android-arm64 alih-alih flutter build appbundle untuk menghindari kesalahan playstore x64.

@dblokhin Baru saja ditingkatkan dan untungnya proyek saya tidak rusak. :) terimakasih

Terima kasih @juliengit2 , flutter build appbundle berhasil.

Perlu disebutkan versi flutter juga, karena saya memiliki v1.5.0 sampai sekarang dan tidak berfungsi.
Saya harus memperbarui (saat ini ke v1.7.9) untuk membuatnya berfungsi.

Terima kasih atas peringatannya!

Saya telah flutter versi 1.7.8+hotfix.3 akankah "flutter build appbundle" akan menghasilkan app.aab dengan 32 & 64 bit keduanya?

aneh saya mencoba dengan 1.7.8+hotfix.3 dengan saluran stabil dan saya mendapatkan lagi peringatan playstore:

"Rilis ini tidak sesuai dengan persyaratan 64-bit Google Play..."

saat mengunggah bundel setelah: _flutter build appbundle_

Saya mencoba juga untuk memutakhirkan flutter tetapi hasil yang sama.
dan dengan instalasi Flutter baru: hasil yang sama

Ini conf saya:
m

Ada ide??

@juliengit2 Buka .aab sebagai zip biasa, masuk ke folder base/lib dan periksa apakah ada folder armeabi-v7a dan arm64-v8a

Mencoba melakukannya dengan folder lib "flutter build appbundle" aplikasi saya berisi v8a & v7a keduanya. Bisakah saya mendorong pembaruan sekarang, saya tidak ingin peringatan lain datang ke email kepala saya.

Kasus serupa lainnya dari APK jauh yang menerima peringatan https://github.com/flutter/flutter/issues/18494#issuecomment -509937209

bagi mereka yang memiliki masalah yang sama, saya menghapus di build.gradle :

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

dan peringatan itu hilang.

(jika Anda menyimpan abifilter, Anda masih akan mendapatkan "rilis tidak sesuai" bahkan dengan _flutter build appbundle_

Hai saya membangun appbundle saya dengan sukses, tetapi ketika saya mencoba mengunggahnya ke play store saya menerima kesalahan ini ...
Untuk mengunggah Android App Bundle, Anda harus terdaftar di Penandatanganan Aplikasi oleh Google Play.
Ekspor kunci Anda dari Android Studio. Dari menu Build, pilih Generate Signed Bundle/APK. Pilih opsi Bundel dan tekan Next. Pilih Ekspor kunci terenkripsi dan tekan Berikutnya.

saya mencoba mengekspor kunci terenkripsi seperti itu, langsung dari modul Android tetapi saya tidak dapat menyelesaikan prosesnya karena saya mendapatkan kesalahan ini

Proses 'command'/Users/oaacelasu/Documents/flutter/bin/flutter'' selesai dengan nilai keluar bukan nol 1

bref saya kira itu bukan cara yang benar ... Apakah ada solusi lain untuk mendapatkan kunci terenkripsi untuk mendaftarkan aplikasi langsung dari perintah flutter build appbundle?

Saya mencoba menggunakan appbundle di playstore,
tetapi di android 6.0 arm 64, crash saat startup karena libflutter.so tidak dapat ditemukan, dan setelah saya periksa libflutter.so termasuk dalam aab arm 64

@matthewlloyd , saya telah mereproduksi ini dengan chromebook lokal (meskipun chromebook itu mungkin akan pergi dalam perjalanan selama tiga minggu pada hari Senin. Saya harus memeriksanya). Saya pikir itu _harus_ mereproduksi terhadap sebagian besar chromebook x86 -- saya pikir kemungkinan ada lebih banyak dari ini daripada ponsel x86.

tim baru-baru ini meningkatkan kode yang dihasilkan oleh kompiler Dart, dan saya bertanya-tanya apakah itu mungkin membuat terjemahan berfungsi. Cobalah dan beri tahu saya. Jika tidak, tergantung situasinya, Anda mungkin perlu membangun versi JIT untuk x86, yang biasanya digunakan untuk debugging/profiling di emulator.

@blasten , apakah ada versi Dart tertentu yang Anda pikirkan? Saya mereproduksi dengan 2.3.1 (dengan flutter 1.7.8+hotfix.2) Haruskah saya menguji dengan 2.4.0?

Selain itu, saya mereproduksi saat kami merilis versi alfa. Saya masih perlu melihat cara menguji appbundle tanpa melalui play store.

@wreppun Terima kasih atas perhatiannya, saya akan menunda merilis AAB gaya baru untuk pengguna saya untuk saat ini karena tampaknya masalah ini belum diperbaiki (atau bahkan diakui oleh Google!). Dapatkah Anda membagikan informasi lebih lanjut tentang Chromebook tertentu, dan apakah ada cara untuk merekam log kerusakan?

@matthewlloyd Inilah yang muncul di log kerusakan 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)

Itu mungkin muncul di beberapa log kerusakan (lama) Anda jika ada pengguna Anda yang memilih untuk berbagi statistik.

Perangkat tersebut adalah Chromebook HP x360.

Maaf ini tidak berfungsi pada 100% konfigurasi. Kami sedang berupaya untuk mendapatkan cakupan pengujian yang lebih baik pada berbagai SDK dan perangkat. Sementara itu, saya akan menyiapkan beberapa pengujian di lab uji Firebase.

Pada titik ini saya pikir cara paling efektif bagi kami untuk memperbaiki semua ini mungkin dengan mengajukan masalah baru dan menautkan kembali ke yang ini. @tvolkert dan saya akan memastikan masing-masing dilihat, tetapi akan membantu kami jika kami dapat mengurutkan ini ke dalam ember terpisah dan melacak perbaikannya satu per satu.

Sangat mungkin kita perlu membuat sedikit penyesuaian pada kompiler Dart, yang kita miliki di masa lalu untuk CPU atau emulator yang memiliki kebiasaan prosesor tertentu. Tanpa menguji sendiri pada Chromebook x86 (yang belum saya lakukan), saya tidak dapat mengatakan dengan pasti.

Apakah mereka yang mengalami masalah tolong bantu kami menyelesaikan masalah yang tersisa dengan mengajukan masalah baru untuk masing-masing? Itu akan sangat membantu untuk memastikan kita menangani masing-masing. Terima kasih!

@wreppun Terima kasih - Saya memeriksa laporan kerusakan aplikasi saya dan tidak satu pun dari pengguna Asus ZenFone 2 yang terpengaruh mengirim apa pun.

@blasten Jangan khawatir, itu bagus. Jika seseorang dapat menunjukkan appbundle baru berfungsi pada perangkat Asus ZenFone 2 itu akan cukup untuk membuat saya bergerak maju. Sayangnya saya tidak memiliki akses ke satu, tapi saya berharap laboratorium pengujian seluler Google memilikinya.

@matthewlloyd tidak ada "Asus ZenFone" di lab uji Firebase. Versi SDK apa? Sebagian besar waktu, masalah dapat direproduksi hanya dengan menjalankan versi Android SDK tertentu.

Versi SDK apa? Sebagian besar waktu, masalah dapat direproduksi hanya dengan menjalankan versi Android SDK tertentu.

😂

Halo tim Flutter,
Saya ingin menekankan pada status topik ini. Dari sudut pandang saya, ada dua masalah serius:

  • Versi flutter stabil saat ini 1.7.8+hotfix.3 tidak membuat apk yang stabil - setidaknya split-per-abi tidak berfungsi sebagaimana mestinya - arm32 memiliki masalah regresi dan tidak dapat berjalan di beberapa perangkat arm32 . Belum jelas kapan ini akan diperbaiki;
  • Batas waktu 1 Agustus - dalam waktu sekitar seminggu kami sebagai pengembang tidak akan dapat memperbarui atau merilis aplikasi flutter baru ke Google Play Store - sesederhana itu. Mempertimbangkan masalah versi flutter saat ini (seperti yang disebutkan di atas) dan waktu yang tersisa, saya rasa tidak layak untuk mengharapkan perbaikan di saluran stabil sebelum akhir bulan (kecuali seseorang dari kalian memiliki tongkat ajaib: - ))

Mempertimbangkan dua masalah di atas, saya ingin menyarankan rencana kontingensi berikut, yang IMO akan paling baik melayani kami sebagai pengembang:

  • Kembalikan saluran stabil flutter ke versinya sebelum hotfix.2
  • Tunda batas waktu 1 Agustus selama beberapa bulan - Saya mengerti ini akan memerlukan beberapa eskalasi tentang masalah ini, tetapi saya harap kalian akan memahami betapa seriusnya dampak yang mungkin terjadi jika pengembang tidak dapat merilis aplikasi flutter yang andal setelah 1 Agustus karena masalah kerangka kerja flutter.

Saya hanya dapat berbicara atas nama saya, tetapi saya memiliki klien dengan kontrak dan saya memutuskan untuk pindah dari React Native ke Flutter, karena saya yakin, Google akan memberikan dukungan yang lebih baik untuk produk mereka sendiri. Saya memiliki proyek yang sedang berjalan dan aplikasi untuk didukung.
Sekarang saya menemukan diri saya dalam kasus yang tidak masuk akal, ketika Google memaksa saya untuk merilis versi apk 64 bit dan pada saat yang sama Google tidak memberi saya alat untuk melakukan itu (dan ya, saya tahu tim Flutter tidak sama dengan Google Play tim tetapi dari mana saya berdiri - Anda adalah entitas bisnis yang sama).
Jika Google gagal memberikan tepat waktu, ini akan menyebabkan penolakan kuat dari Flutter, karena setiap hari setelah 1 Agustus akan menyusutkan kredibilitas kerangka kerja.
Saya minta maaf jika kata-kata saya terdengar sedikit lebih kuat, saya hanya berharap Anda dapat menempatkan diri Anda pada posisi saya untuk saat ini.

Siapa pun - silakan pilih ini, dan semoga suara kami didengar!

Saya juga setuju dengan ini... Tetapi sebagai rencana darurat saya sarankan untuk tidak kembali ke rilis sebelumnya, melainkan beralih ke saluran dev ....

Dari pengalaman pribadi saya, saya juga tidak nyaman menggunakan saluran dev pada awalnya. Saya berpikir untuk tetap menggunakan saluran stable , karena Anda tahu, ini stabil!... Tapi sekarang saya telah menggunakan saluran dev dan merilis aplikasi menggunakan bundel aplikasi di play store tanpa masalah.. ..

Situasi ini seharusnya tidak terjadi karena keduanya adalah produk Google...

Apa yang saya sajikan hanyalah solusi yang lebih sederhana, karena Anda dapat mulai mendorong pembaruan menggunakan aab s dan bukan apk s, yang disarankan oleh Google...

@angel1st masalah yang sama, masalah yang sama, sepatu yang sama
@sulaysumaria jika kita beralih ke saluran dev, apakah masalah libapp.so akan terpecahkan?
Karena saluran master sepertinya tidak berfungsi

Apa yang saya sajikan hanyalah solusi yang lebih sederhana, karena Anda dapat mulai mendorong pembaruan menggunakan aabs dan bukan apk, yang disarankan oleh Google...

@sulaysumaria - tidak sesederhana kelihatannya, percayalah... Juga beralih ke saluran dev tampaknya menyebabkan beberapa komplikasi dengan paket dan plugin pihak ketiga yang akan menyebabkan serangkaian masalah yang berbeda.

@campioncino Saya pikir ya karena saya tidak pernah menghadapi masalah itu.... Saya hanya membuat rilis appbundle dan mengunggahnya ke play store... Tidak pernah menunjukkan peringatan apa pun.... dan aplikasi berfungsi dengan baik ketika diinstal dari play store ( setidaknya apa yang klien saya gunakan sejauh ini ...)

@ angel1st , saya bisa mengerti .. dalam hal ini memutar kembali adalah satu-satunya pilihan ... Tapi dependensi itu perlu ditingkatkan atau Anda tidak akan pernah bisa memutakhirkan ke versi yang lebih baru ... Saya juga menghadapi masalah semacam itu dengan satu plugin Saya menggunakan, untungnya mereka merilis versi yang lebih baru dalam versi beta untuk mendukung versi terbaru dari flutter... Mungkin jika plugin tidak dipertahankan, sebaiknya kita tidak menggunakannya..

@sulaysumaria Saya tidak pernah menghadapi masalah ini juga ... hingga build terakhir.
Saya akan mencoba tetapi tidak begitu mudah untuk menguji, karena itu hanya terjadi pada beberapa perangkat.

Misalnya pada Samsung Galaxy Tab 2 7.0 P3110, Android 4.2.2, dan pada beberapa tablet lama lainnya dengan android 4.1.2

Ohhh... Aplikasi saya bukan untuk tablet itu pasti... Akan lebih baik jika Anda mengujinya sekali...

Halo semua,

Berikut statusnya saat ini:

  1. Indikasinya adalah https://github.com/flutter/flutter/issues/35838 memengaruhi Android 4.2 dan sebelumnya, yang berarti memengaruhi ~3% ponsel Android . Kami sedang bekerja dengan orang-orang yang terpengaruh pada bug itu untuk mengidentifikasi cakupan perbaikan dan melacak kemungkinan masalah tambahan yang mungkin hanya memengaruhi beberapa aplikasi (seperti kemungkinan bug yang tidak terkait di Dart VM yang tidak muncul di semua aplikasi). Berdasarkan penyelidikan itu dan kesimpulannya, kami akan memutuskan apakah lebih baik untuk menambal rilis stabil saat ini atau mendorong rilis baru melalui saluran ke stabil.

  2. Jika ada yang lebih suka membangun dari versi Flutter yang lebih lama dan secara manual membuat APK 32 dan 64-bit, mereka dapat melakukannya dengan mengunduh versi Flutter yang lebih lama di sini . Mengembalikan rilis stabil kami bukanlah pilihan -- hal itu akan menyebabkan lebih banyak masalah daripada yang akan dipecahkan.

  3. Jika ada yang mengalami masalah membangun untuk Android _other_ selain https://github.com/flutter/flutter/issues/35838 , silakan ajukan masalah terpisah dan beri tahu saya, karena kami sangat ingin melacak masalah tersebut.

  4. Secara terpisah, kami secara aktif berupaya meningkatkan matriks pengujian kami untuk mendeteksi masalah dengan lebih baik pada lebih banyak perangkat/versi Android di awal proses (sehingga laporan bug bukan pertahanan pertama kami).

@tvolkert - terima kasih atas umpan baliknya. Hanya untuk memastikan kita berada di halaman yang sama - memutar kembali ke versi Flutter sebelumnya tidak masuk akal sampai batas waktu 1 Agustus ditunda , karena Google Play tidak mengizinkan saya mengunggah 32 versi aplikasi hanya setelah 1 Agustus.

@ angel1st apakah opsi ini cocok untuk kasus Anda?

  1. Kembalikan flutter SDK ke v1.5.4-hotfix.2 ( flutter version v1.5.4-hotfix.2 )
  2. Bangun 2 APK terpisah (satu di 32-bit flutter build apk --target-platform android-arm dan satu di 64-bit flutter build apk --target-platform android-arm64 )
  3. Unggah kedua APK ini di Google Play Store

Saya tahu ini solusinya, tetapi setidaknya ini menyelesaikan masalah stabilitas dan "peringatan".

@truongsinh - terima kasih atas sarannya - perlu dipertimbangkan. Apakah Anda berbaik hati untuk mengkonfirmasi langkah 2 dari saran Anda di atas tidak akan memerlukan perubahan seperti pada saran sebelumnya misalnya app gradle amandemen?

@ angel1st selama Anda memiliki seluruh aplikasi dalam flutter (yaitu tidak https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps), dan Anda belum mengubah apa pun di Gradle file (yaitu file vanilla dari flutter create ), saya yakin kita tidak perlu melakukan apa pun.

Anda dapat melakukan pemeriksaan cepat sendiri (dengan asumsi versi "3.4.5", mengikuti https://github.com/flutter/flutter/issues/31922#issuecomment-512292798, format pilihan pribadi saya untuk "nomor build" adalah bbxxyyzz , di mana bb hanya untuk mengidentifikasi 32- atau 64-bit, xx mayor, yy minor, zz adalah patch , tetapi ada juga format lain yang disarankan, lihat 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

Saya menyertakan 2 APK di sini. Mereka bekerja dengan Pixel 2 saya. Juga melihat analisis APK, kita dapat dengan jelas melihat bahwa setiap APK memiliki libflutter.so dan 4 file snapshot/aot yang berbeda

Screen Shot 2019-07-17 at 1855 27

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

Sekedar catatan untuk saat mengunggah dua apk... Google tidak mengizinkan untuk mengunggah banyak file yang memiliki nomor build yang sama, jadi Anda mungkin ingin mengubah nomor build sebelum membuat apk untuk 64 bit.

Sekedar catatan untuk saat mengunggah dua apk... Google tidak mengizinkan untuk mengunggah banyak file yang memiliki nomor build yang sama, jadi Anda mungkin ingin mengubah nomor build sebelum membuat apk untuk 64 bit.

Ah, benar itu (ref https://developer.android.com/google/play/publishing/multiple-apks#Rules) . Pastikan untuk setiap versi, nomor build 64-bit lebih tinggi dari 32-bit (saya memperbarui contoh saya sebelumnya https://github.com/flutter/flutter/issues/31922#issuecomment-512223030).

Hai, saya mendapatkan pesan kesalahan saat mencoba membangun dengan appbundle . flutter build apk berfungsi dengan baik tetapi saya ingin menerbitkan versi baru ke play store. Adakah yang bisa membantu saya apa alasannya?

Output dari menjalankan flutter build appbundle --target-platform android-arm,android-arm64 --flavor my_flavor --release -t "bin/main.dart adalah sebagai berikut:

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.

Sayangnya pesan kesalahan tidak terlalu membantu. Juga output dari flutter 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!

Sunting
Jika saya mencoba menggunakan --split-per abi bangunan gagal dengan flutter build apk juga.

@wreppun Terima kasih - Saya memeriksa laporan kerusakan aplikasi saya dan tidak satu pun dari pengguna Asus ZenFone 2 yang terpengaruh mengirim apa pun.

@blasten Jangan khawatir, itu bagus. Jika seseorang dapat menunjukkan appbundle baru berfungsi pada perangkat Asus ZenFone 2 itu akan cukup untuk membuat saya bergerak maju. Sayangnya saya tidak memiliki akses ke satu, tapi saya berharap laboratorium pengujian seluler Google memilikinya.

Bahkan saya menghadapi masalah dengan Asus Zenfone. Ketika saya menjalankan menggunakan flutter build apk aplikasi berjalan di telepon. Tetapi ketika saya mengunggahnya ke App Store menggunakan appbundle, itu tidak bergerak di depan layar splash.

Ada solusi??

Saya mencoba mengkompilasi dan merilis satu versi baru dari salah satu aplikasi saya (aplikasi) di "Play Store", tetapi saya mengalami beberapa masalah.

1-) Ketika saya mengunggah 32 dan 64 bit, situs tersebut mundur, karena versi 32 bit.

2-) Ketika saya mengunggah hanya 32 bit, situs menolak, karena saya membutuhkan 64 bit.

3-) Ketika saya mengunggah hanya 64 bit, situs berfungsi, tetapi pelanggan saya mungkin tidak memiliki Android 64 bit. Di hp saya contohnya saya menggunakan aplikasi yang sama, tapi di hp saya hanya berfungsi ketika saya menggunakan apk 32 bit. Ketika saya menginstal apk 64 bit di ponsel saya berhenti di layar splash.

Bagaimana saya harus lakukan sekarang untuk melepaskan??

Tigerclaw1980 menggunakan opsi flutter appbundle

Tigerclaw1980 menggunakan opsi flutter appbundle @MoacirSchmidt

Saya menggunakan Delphi Beta untuk membuat file apk untuk 32 dan 64 bit. Saya tidak tahu apakah opsi ini tersedia

Saya mencoba mengkompilasi dan merilis satu versi baru dari salah satu aplikasi saya (aplikasi) di "Play Store", tetapi saya mengalami beberapa masalah.

1-) Ketika saya mengunggah 32 dan 64 bit, situs tersebut mundur, karena versi 32 bit.

2-) Ketika saya mengunggah hanya 32 bit, situs menolak, karena saya membutuhkan 64 bit.

3-) Ketika saya mengunggah hanya 64 bit, situs berfungsi, tetapi pelanggan saya mungkin tidak memiliki Android 64 bit. Di hp saya contohnya saya menggunakan aplikasi yang sama, tapi di hp saya hanya berfungsi ketika saya menggunakan apk 32 bit. Ketika saya menginstal apk 64 bit di ponsel saya berhenti di layar splash.

Bagaimana saya harus lakukan sekarang untuk melepaskan??

@ Tigerclaw1980 apakah Anda memperbaiki kesalahan ini?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat