Xamarin.forms: [Bug] Aplikasi Android mogok sejak memperbarui ke Xamarin Forms v4

Dibuat pada 20 Sep 2019  ·  56Komentar  ·  Sumber: xamarin/Xamarin.Forms

Sejak memperbarui ke 4.2.0.815419 saya sekarang mendapatkan pengecualian berikut dilemparkan di LoadApplication (App baru (dbPath, builder)); dalam MainActivity.cs

Saya juga mencoba v4.3.0.819712-pre2 jika ada perbaikan.

Saya harus mengembalikan ke 3.5.0.129452 tetapi saya pikir akan berguna untuk mencatat masalah tersebut.

Menautkan disetel ke Tidak Ada. Aplikasi UWP berfungsi.

09-25 13:17:14.076 E/mono    ( 5126): 
09-25 13:17:14.076 E/mono    ( 5126): Unhandled Exception:
09-25 13:17:14.076 E/mono    ( 5126): System.TypeLoadException: Could not load type of field 'Xamarin.Forms.Platform.Android.RendererPool:_freeRenderers' (0) due to: Could not resolve type with token 01000275 from typeref (expected class 'System.Collections.Generic.Stack`1' in assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e') assembly:mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e type:System.Collections.Generic.Stack`1 member:(null)
09-25 13:17:14.076 E/mono    ( 5126):   at (wrapper dynamic-method) System.Object.7(intptr,intptr,intptr)
09-25 13:17:14.076 E/mono    ( 5126):   at (wrapper native-to-managed) System.Object.7(intptr,intptr,intptr)
09-25 13:17:14.076 E/mono-rt ( 5126): [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type of field 'Xamarin.Forms.Platform.Android.RendererPool:_freeRenderers' (0) due to: Could not resolve type with token 01000275 from typeref (expected class 'System.Collections.Generic.Stack`1' in assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e') assembly:mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e type:System.Collections.Generic.Stack`1 member:(null)
09-25 13:17:14.076 E/mono-rt ( 5126):   at (wrapper dynamic-method) System.Object.7(intptr,intptr,intptr)
09-25 13:17:14.076 E/mono-rt ( 5126):   at (wrapper native-to-managed) System.Object.7(intptr,intptr,intptr)
high regression Android bug

Komentar yang paling membantu

Saya menemukan bahwa System.Collections.Generic.Queue tersedia di

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ System.dll

dan

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll

Tidak tersedia di

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll

Jadi jika ada dll yang bergantung pada Queue yang sesuai dengan VS2019, dan dijalankan pada VS2017, itu akan membuang pengecualian tidak dapat memuat Queue dari mscorlib.
Saya pikir tidak hanya Antrian tetapi juga kelas-kelas lain di Collections. Namespace generik dapat mengalami masalah yang sama.

Semua 56 komentar

Dari pandangan pertama, ini tampak seperti masalah penyimpanan cache. Pastikan Anda memperbarui semua proyek ke versi Xamarin.Forms yang sama, lalu bersihkan solusinya. Untuk memastikan hapus folder bin dan obj dari masing-masing proyek juga di sistem berkas. Hapus juga aplikasi dari emulator atau perangkat.

Lakukan pembangunan kembali, jalankan dan semoga semua harus diselesaikan. Apakah Anda sudah mencoba salah satu dari hal ini?

Saya menemukan bahwa saya harus menghapus semua aplikasi 3.0 yang ada di telepon dan menyebarkan kembali bersih dan membangun solusi Anda seharusnya baik-baik saja. Mungkin hot reload telah terjadi beberapa kali untuk saya jadi pastikan ini dinonaktifkan.

Hai @jfversluis masalah ini sebenarnya juga terjadi pada devops dan appcenter, kedua area membersihkan area kerja sebelum ada bangunan yang saya percaya

Mencari pesan kesalahan ini tampaknya ada hubungannya dengan paket penargetan dan dukungan Android. Apakah Anda juga memperbaruinya? Bisakah Anda memberikan info lebih lanjut tentang paket apa yang diinstal dengan versi yang mana dan versi Android apa yang Anda coba targetkan?

Ya, saya memperbarui level api saya ke Android 9

Pada Jum, 20 Sep 2019 jam 15.46 Gerald Versluis [email protected]
menulis:

Mencari pesan kesalahan ini sepertinya ada hubungannya dengan Google
penargetan dan paket dukungan. Apakah Anda juga memperbaruinya? Bisakah kamu
memberikan beberapa info lebih lanjut tentang paket apa yang diinstal dengan yang mana
versi dan versi Android apa yang Anda coba targetkan?

-
Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/xamarin/Xamarin .
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/ABK34HLYSFLSUXVEIB5H67LQKTO3PANCNFSM4IYVWRJA
.

-

Salam
David Buckley
M: 07871 884 546

Saya mengalami masalah yang sama setelah memperbarui ke versi terbaru, di versi sebelumnya semuanya berfungsi dengan baik, tetapi ketika saya memperbarui xamarin kesalahan terjadi.

Adakah yang bisa mengalami masalah ini, harap lampirkan proyek kecil yang menunjukkan masalah ini? Terima kasih!

Saya melihat seseorang dengan masalah yang sama di sini di SO: https://stackoverflow.com/questions/58032635/updating-nuget-caused-exception-unhandled-system-typeloadexception

Sepertinya ada hubungannya dengan Maps? Bisakah seseorang memverifikasi ini? Dan apa yang dikatakan Samantha, reproduksi akan sangat luar biasa!

Saya memiliki masalah yang sama persis, di Android dan iOS. Di Android, aplikasi dibangun dan mogok saat dimulai di iOS, aplikasi tidak dibangun (saat menargetkan pembuatan simulator perangkat nyata berfungsi dengan baik). Saya mendapatkan kesalahan yang dirujuk di tautan Stack overflow di atas yang berkaitan dengan System.Collections.Generic.Stack`1

Masalah tidak ada jika saya kembali ke 4.2.0.778463

Saya tidak yakin apakah ini terkait dengan peta, tetapi aplikasi saya menyertakan paket Maps nuget.

Saya tidak menggunakan peta, itu terjadi bahkan dalam proyek baru

@Kenny Bisakah Anda memasukkannya ke dalam proyek reproduksi dan menambahkannya di sini?

Saya mendapat kesalahan yang sama saat mengupgrade ke 4.2 SR2.
Saya mencoba beberapa saran, memperbarui semua paket nuget, tetapi aplikasi masih macet.
Saya memulai aplikasi kosong baru (di 4.0), berfungsi dengan baik!
Upgrade tot 4.2 SR2, jatuh!
Kemudian saya memperbarui Visual Studio (16.2.5), dan masalahnya hilang !!

@Kenny Bisakah Anda memasukkannya ke dalam proyek reproduksi dan menambahkannya di sini?

Saya hanya membuat aplikasi kosong baru dan juga mendapatkan TypeLoadException (tetapi tanpa detail apa pun) di VS2017 15.9

image

Kemudian saya memperbarui Visual Studio (16.2.5), dan masalahnya hilang !!

dengan VS2019 saya juga dapat mengkompilasi dan menjalankan aplikasi tanpa masalah apapun.

@jfversluis Ada ide mengapa gagal untuk VS2017? Apakah ini masalah Mono dengan VS2017 15.9?

@jfversluis Ini proyeknya, saya baru saja membuat dan memperbarui xamarin ke versi 4.2.0.815419 dan aplikasi macet ketika mulai
https://github.com/KennyMack/ExampleFail

Saya mengalami masalah yang sama menggunakan AppCenter, juga menggunakan 4.2.0.815419 baik iOS dan Android build gagal dengan pesan "System.Collections.Generic.Stack" kelas yang diharapkan.

Saya mengubah konfigurasi build di AppCenter untuk menggunakan: Versi SDK: Xamarin.iOS 12.14 dan versi Xcode: 10.3.
Masalahnya sepertinya sudah hilang sekarang sejak mengubah ke pengaturan ini, di iOS build (belum mencoba Android).

@Kenny Saya menarik

image

@Kenny Saya menarik

VS mana yang Anda gunakan? Masalahnya hanya terjadi pada 2017 dan bukan 2019

@Kenny Saya menarik

image

Ini aneh, dalam versi saya tidak berfungsi.
Saya menggunakan visual studio 2017 versi 15.9.16.
apakah saya perlu memperbarui yang lain?

Kesalahanku

Itu crash untuk saya di VS 2017: - /

Kami baru saja memindahkan pipeline build kami untuk mulai menggunakan VS 2019 jadi saya melihat-lihat secara internal untuk melihat tentang pengecualian di atas

Saya mengalami masalah yang sama seperti yang dikatakan @ dannythomas13 . Awalnya versi formulir xamarin saya adalah 3.4.0.1008975 dan ketika saya memperbaruinya ke 4.2.0.815419 aplikasi macet menunjukkan masalah yang sama. Bahkan saya mencoba dalam proyek kosong itu macet memberikan kesalahan yang sama. My vs is vs enterprise 2017 versi 15.9.13.

Saya mengalami masalah yang sama dengan @ dannythomas13 dan @zimbabirbal . Anda dapat memperbaikinya sehingga juga berfungsi dengan VS2017?

Saya menemukan bahwa System.Collections.Generic.Queue tersedia di

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ System.dll

dan

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll

Tidak tersedia di

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ ReferenceAssemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll

Jadi jika ada dll yang bergantung pada Queue yang sesuai dengan VS2019, dan dijalankan pada VS2017, itu akan membuang pengecualian tidak dapat memuat Queue dari mscorlib.
Saya pikir tidak hanya Antrian tetapi juga kelas-kelas lain di Collections. Namespace generik dapat mengalami masalah yang sama.

Versi iOS pada VS2017 memiliki masalah yang sama. Lihat # 7638.

Memiliki kesalahan yang sama pada VS 16.0.3, ditingkatkan ke terbaru (16.3.1) dan masalah telah diselesaikan. #sihir

Jadi jika ada dll yang bergantung pada Queue yang sesuai dengan VS2019, dan dijalankan pada VS2017, itu akan membuang pengecualian tidak dapat memuat Queue dari mscorlib.
Saya pikir tidak hanya Antrian tetapi juga kelas-kelas lain di Collections. Namespace generik dapat mengalami masalah yang sama.

Ini adalah sesuatu yang harus dilihat oleh tim Xamarin.Android @jonathanpeppers @brendanzagaeski

Ini mulai terjadi karena kami memindahkan server build kami dari VS 2017 ke VS 2019 yang memiliki versi XA / XI / Mono SDK yang lebih baru. Jika Anda membuat versi yang lebih baru dari SDK tersebut, versi tersebut tidak akan berfungsi lagi pada versi yang lebih lama.

Ini adalah perubahan spesifik yang memicu pengecualian ini https://github.com/mono/mono/pull/11511

Rilis 4.2 berikutnya akan dibangun melawan VS 2017 sehingga masih dapat digunakan pada VS 2017 tetapi 4.3 akan mengharuskan Anda untuk memiliki setidaknya 16.3

Alasan untuk ini adalah persyaratan pada 4.3 berkaitan dengan secara harfiah setiap platform yang membutuhkan Visual Studio 16 dan / atau 16.3 untuk menggunakan SDK terbaru

XCode11 membutuhkan 16.3
Android 10 membutuhkan 16.3 dan Android X membutuhkan setidaknya 16.2
WinUI membutuhkan setidaknya VS 2019 untuk menggunakan SDK yang paling kompatibel

Sampai saat ini kami belum benar-benar perlu membangun dengan SDK yang lebih baru, tetapi sekarang kami harus melakukannya untuk mendukung kerangka kerja yang lebih baru

Rilis 4.2 berikutnya akan dibangun melawan VS 2017 sehingga masih dapat digunakan pada VS 2017 tetapi 4.3 akan mengharuskan Anda untuk memiliki setidaknya 16.3

ok, jadi kami akan berhenti menggunakan Xamarin.Forms. VS2019 tidak bisa dilakukan. Selamat tinggal. Selamat tinggal dan RIP Xamarin.

@ MagicAnd1981 Kami masih mendiskusikan opsi. Kami belum membuat keputusan untuk meminta VS2019 untuk 4.3.

Maukah Anda berbagi mengapa VS2019 adalah "dilarang"? Apa jadwal Anda untuk meningkatkan?

Terima kasih!

Maukah Anda berbagi mengapa VS2019 adalah "dilarang"?

karena UI rusak (Jendela Awal modal yang mengerikan, "dialog Proyek Baru" yang rusak ini dan ikon pemberitahuan di pantat tempat saya selalu mengabaikannya). VS2019 mengulangi bencana VS2012

Ada juga crash di iOS. Apakah ini juga disebabkan oleh versi VS untuk Mac yang lebih lama? Karena bagi saya ini gagal pada Azure DevOps di mana saya telah memilih macOS X Mojave 10.14 sebagai agen untuk build.

Kedua, masalah ini memengaruhi pipeline build di DevOps menggunakan macOS 10.14. Apakah ada perbaikan jangka pendek atau apakah kita terjebak menunggu versi 4.2.X baru?

Halo,
kami membutuhkan bantuan dan nasihat.

Saya perlu meningkatkan ke 4.2.0.815419 yang memperbaiki masalah dengan gambar uri tidak berfungsi di versi sebelumnya.
Saya harus mengirim ke klien hari ini tetapi tidak bisa.
Saya ingin menghindari kembali ke versi 4 yang sangat lama.

Namun sepanjang hari mencoba membuat ios membangun melawan 4.2.0.815419
"Gagal menyelesaikan" System.Collections.Generic.Stack`1 ". Mencoba segala macam hal ... dan mendapatkan kesalahan berbeda yang tidak saya sebutkan di sini karena dapat membingungkan.

Sesuatu pasti berubah dengan 4.2.0.815419 dan kami tidak dapat membangun lagi pada pipa biru di iOS.

build terakhir saya menggunakan mono 5_16 dengan 4.1.0.709244

ada saran?

Saya mengalami masalah yang sama.
Saya menginstal Xamarin Essentials dan nuget diminta untuk mengupgrade Xamarin ke versi 4.2.0.815419.
Saya kembali ke versi 4.2.0.778463 dan kembali bekerja

Saya melihat masalah yang sama seperti @ developer9969 dan @oliveiraugusto dengan versi 4.2.0.848062 .

MTOUCH: kesalahan MT2002: Gagal menyelesaikan referensi "System.Collections.Generic.Stack`1" dari "mscorlib, Versi = 2.0.5.0, Budaya = netral, PublicKeyToken = 7cec85d7bea7798e"

Saya menjalankan iOS build dengan scritp di bawah ini, menentukan versi MONO SDK dan Xcode

/ bin / bash -c "sudo $ AGENT_HOMEDIRECTORY / scripts / select-xamarin-sdk.sh 5_18_1"
/ bin / bash -c "sudo xcode-select -s /Applications/Xcode_10.2.1.app/Contents/Developer"

Ada solusi?

Hai tim
Saya juga mendapatkan masalah yang sama, apakah ada perbaikan yang dapat kami harapkan untuk mengerjakan formulir xamarin di VS 2017?

@ryanmendoza Untuk memperbaiki iOS devops build, Anda perlu menggunakan xCode 11 dan Xamarin sdk 6_4_0. Tambahkan tugas build "Gunakan .NET Core" ke pipeline menggunakan versi 3.0.100.

@annisaaf

Kedua, masalah ini memengaruhi pipeline build di DevOps menggunakan macOS 10.14. Apakah ada perbaikan jangka pendek atau apakah kita terjebak menunggu versi 4.2.X baru?

Sebenarnya ada versi baru sekarang, apakah itu memperbaiki segalanya untuk Anda?

Ini harus diselesaikan dalam versi terbaru Xamarin.Forms yang diterbitkan di NuGet. Terima kasih!

Ini harus diselesaikan dalam versi terbaru Xamarin.Forms yang diterbitkan di NuGet.

versi / nomor build yang mana? Berapa lama XF akan berfungsi untuk pengguna VS2017?

4.2.0.848062 dan 4.3.0.851321-pre3 keduanya kompatibel dengan VS2017.

Saya dapat mengonfirmasi bahwa menggunakan build terbaru (disebutkan di atas) telah menyelesaikan masalah yang dilaporkan tanpa perlu mengupgrade / mengubah perkakas yang ada.

4.2.0.848062 ... kompatibel dengan VS2017.

terima kasih, saya dapat mengkonfirmasi ini.

Tidak ada gunanya mendapatkan versi baru Xamarin.Forms untuk bekerja dengan perkakas lama. Orang yang ingin menggunakan perkakas lama masih bisa menggunakan Xamarin.Forms versi lama. Perlu untuk mendukung perkakas lama akan menjadi hambatan dalam pengembangan di repo yang sudah memiliki terlalu banyak hambatan dalam pengembangan.

Saya mendapat masalah yang sama di Xamarin.Forms.iOS versi 4.3.0.991211 di MacOS Mojave

@samhouts masalah ini telah ditutup, tetapi masalahnya masih ada ... Di mana solusi resmi, atau berikan kepada kami setidaknya solusi yang berfungsi untuk memperbaiki masalah ini?

Lihat log build di Azure DevOps:
image

_Tipe proyek - Xamarin.iOS
Mono - 5.12.0
XCode - 10.2.1_

konfigurasi .yaml saya di Azure DevOps

@beylkhanovdamir versi

@jfversluis Itu masih terjadi pada saya juga (Xamarin.Forms.iOS versi 4.3.0.991211 )

@ Sonic3R Anda menggunakan VS2017 pada Windows? VSMac? Bisakah Anda memberikan lebih banyak detail?

Visual Studio untuk Mac, versi 8.3

@jfversluis Anda dapat melihat konfigurasi .yaml saya di DevOps

ps Saya menggunakan vmImage '_macOS-latest_' dan versi XF di bawah ini
image

@beylkhanovdamir apakah Anda melihat komentar ini: https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment -537847507

Saya melihat Anda menyetel versi SDK secara manual dan Anda menggunakan Xcode 10, Anda mungkin ingin melihat menggunakan versi saat ini bersama dengan versi Formulir terbaru.

@ Sonic3R bisakah Anda berbagi lebih banyak tentang kesalahan apa yang Anda lihat di VSMac saat membangun? Versi Xcode apa yang Anda gunakan?

Guys i FOUND bahwa hot reload-nya akan diubah, nonaktifkan hot reload dan file
aplikasi akan baik-baik saja.

Pada Sel, 3 Des 2019 pukul 12:47 Gerald Versluis [email protected]
menulis:

@beylkhanovdamir https://github.com/beylkhanovdamir apakah Anda melihat ini
komentar: # 7602 (komentar)
https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment-537847507

Saya melihat Anda menyetel versi SDK secara manual dan Anda menggunakan Xcode 10,
Anda mungkin ingin melihat menggunakan versi saat ini bersama dengan yang terbaru
Versi formulir.

@ Sonic3R https://github.com/Sonic3R dapatkah Anda berbagi lebih banyak lagi
tentang kesalahan apa yang Anda lihat di VSMac saat membangun?

-
Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/xamarin/Xamarin .
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/ABK34HM2BQTF5PHNEBQVEFDQWZIPTANCNFSM4IYVWRJA
.

-

Salam
David Buckley
M: 07871 884 546

@detikfood

apakah Anda melihat komentar ini: # 7602 (komentar)

ya, saya melihat, tetapi saya tidak bisa, karena kami memiliki proyek di mana target FW adalah .netstandard 2.0 (yaitu bukan 2.1 yang kompatibel dengan .net core 3.0), dan dalam hal ini, saya akan mendapatkan banyak kesalahan kompilasi .
Tapi mungkin, untuk saat ini, ini benar-benar cara terakhir untuk memperbaiki masalah ini

Hai - Mendapatkan pesan kesalahan di bawah ini pada Visual studio 2017 mendukung Xamarin.iOS 12.4.0.64. Seseorang tolong bantu kami dalam hal ini karena ini memblokir proses penerapan lengkap kami sekarang.

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Xamarin \ iOS \ Xamarin.iOS.Common.t target (795,3): kesalahan MT2002: Gagal untuk menyelesaikan "System.Collections.Generic.Stack `1" referensi dari "mscorlib, Versi = 2.0.5.0, Budaya = netral, PublicKeyToken = 7cec85d7bea7798e"

Pesan kesalahan ini HANYA muncul

Terima kasih sebelumnya

@ryanmendoza Untuk memperbaiki iOS devops build, Anda perlu menggunakan xCode 11 dan Xamarin sdk 6_4_0. Tambahkan tugas build "Gunakan .NET Core" ke pipeline menggunakan versi 3.0.100.

Apa artinya ini? Saya cukup bingung dengan ini, apakah Anda memiliki contoh YAML yang dapat Anda bagikan?

Apa yang saya bangun dengan tugas .netcore? Proyek iOS .. bagaimana caranya? Saya jelas melewatkan sesuatu.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat