Xamarin.forms: [Error] La aplicación de Android se bloquea desde que se actualizó a Xamarin Forms v4

Creado en 20 sept. 2019  ·  56Comentarios  ·  Fuente: xamarin/Xamarin.Forms

Desde que actualicé a 4.2.0.815419 ahora obtengo la siguiente excepción lanzada en LoadApplication (nueva aplicación (dbPath, builder)); dentro de MainActivity.cs

También probé v4.3.0.819712-pre2 en caso de que hubiera una solución.

Tendré que retroceder a 3.5.0.129452 pero pensé que sería útil registrar el problema.

La vinculación está establecida en Ninguno. La aplicación para UWP funciona.

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

Comentario más útil

Encontré que System.Collections.Generic.Queue está disponible en

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

y

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

No está disponible en

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

Entonces, si cualquier dll que se basa en Queue cumple con VS2019 y se ejecuta en VS2017, arrojará una excepción que no puede cargar Queue desde mscorlib.
Creo que no solo Queue sino también otras clases en Collections.Generic namespace podrían sufrir el mismo problema.

Todos 56 comentarios

A primera vista, esto parece una especie de problema de almacenamiento en caché. Asegúrese de actualizar todos los proyectos a la misma versión de Xamarin.Forms, luego limpie la solución. Para asegurarse, elimine las carpetas bin y obj de cada uno de los proyectos y también en el sistema de archivos. También elimine la aplicación del emulador o dispositivo.

Haga una reconstrucción, ejecute y, con suerte, todo debería resolverse. ¿Ya probaste alguna de estas cosas?

Descubrí que tenía que desinstalar cualquier aplicación 3.0 existente en el teléfono y volver a implementar limpia y construir su solución, entonces debería estar bien. Bien podría ser que me haya ocurrido una recarga en caliente varias veces, así que asegúrese de que esté deshabilitado.

Hola @jfversluis, estos problemas también ocurren en devops y appcenter, ambas áreas limpian el área de trabajo antes de cualquier construcción, creo

La búsqueda de este mensaje de error parece tener que ver con los paquetes de soporte y orientación de Android. ¿Los actualizaste también? ¿Podría proporcionar más información sobre qué paquetes están instalados exactamente con qué versión y qué versión de Android está tratando de apuntar?

Sí, actualicé mi nivel de API a Andriod 9

El viernes 20 de septiembre de 2019 a las 3:46 p.m. Gerald Versluis [email protected]
escribió:

Al buscar este mensaje de error, parece tener que ver con Google.
paquetes de apoyo y focalización. ¿Los actualizaste también? Podrías
proporcionar más información sobre qué paquetes se instalan exactamente con qué
versión y a qué versión de Android estás intentando apuntar?

-
Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/xamarin/Xamarin .
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/ABK34HLYSFLSUXVEIB5H67LQKTO3PANCNFSM4IYVWRJA
.

-

Saludos
David Buckley
M: 07871 884546

Tengo el mismo problema después de actualizar a la última versión, en la versión anterior todo funciona bien, pero cuando actualizo el xamarin se produce el error.

¿Alguien puede tener este problema adjuntando un pequeño proyecto que demuestre este problema? ¡Gracias!

Veo a alguien con el mismo problema aquí en SO: https://stackoverflow.com/questions/58032635/updating-nuget-caused-exception-unhandled-system-typeloadexception

¿Parece tener que ver con Maps? ¿Alguien puede verificar esto? Y lo que dijo Samantha, ¡una reproducción sería súper increíble!

Tengo exactamente el mismo problema, tanto en Android como en iOS. En Android, la aplicación se compila y se bloquea al iniciarse en iOS, la aplicación no se compila (cuando se apunta a una compilación de simulador de dispositivo real funciona bien). Recibo el error al que se hace referencia en el enlace de desbordamiento de pila anterior relacionado con System.Collections.Generic.Stack`1

El problema no existe si vuelvo a 4.2.0.778463

No estoy seguro si está relacionado con mapas, pero mi aplicación incluye el paquete Nuget de Maps.

No uso mapas, eso ocurre incluso en un proyecto nuevo

@KennyMack, ¿podrías poner eso en un proyecto de reproducción y agregarlo aquí?

Recibí el mismo error al actualizar a 4.2 SR2.
Probé varias sugerencias, actualicé todos los paquetes nuget, pero la aplicación aún falla.
Comencé una nueva aplicación en blanco (en 4.0), ¡funciona bien!
Actualizado a 4.2 SR2, ¡se estrelló!
Luego actualicé Visual Studio (16.2.5), ¡y el problema desapareció!

@KennyMack, ¿podrías poner eso en un proyecto de reproducción y agregarlo aquí?

Simplemente creé una nueva aplicación vacía y también obtuve una TypeLoadException (pero sin ningún detalle) en VS2017 15.9

image

Luego actualicé Visual Studio (16.2.5), ¡y el problema desapareció!

con VS2019 también puedo compilar y ejecutar la aplicación sin ningún problema.

@jfversluis ¿ Alguna idea de por qué falla para VS2017? ¿Es este un problema de Mono con VS2017 15.9?

@jfversluis Aquí el proyecto, acabo de crear y actualizar el xamarin a la versión 4.2.0.815419 y la aplicación se bloquea cuando se inicia
https://github.com/KennyMack/ExampleFail

Tuve el mismo problema al usar AppCenter, también al usar 4.2.0.815419, las compilaciones de iOS y Android fallaron con el mismo mensaje de "clase esperada" System.Collections.Generic.Stack ".

Cambié la configuración de compilación en AppCenter para usar: Versión SDK: Xamarin.iOS 12.14 y versión Xcode: 10.3.
El problema parece haber desaparecido desde que cambió a esta configuración, en las compilaciones de iOS (aún no he probado Android).

@KennyMack Bajé tu reproducción y todo funciona bien para mí

image

@KennyMack Bajé tu reproducción y todo funciona bien para mí

que VS usas? El problema solo ocurre en 2017 y no en 2019

@KennyMack Bajé tu reproducción y todo funciona bien para mí

image

Esto es extraño, en mi versión no funciona.
Estoy usando Visual Studio 2017 versión 15.9.16.
¿necesito actualizar algo más?

Mi error

Se bloquea para mí en VS 2017: - /

Acabamos de mover nuestro canal de compilación para comenzar a usar VS 2019, así que estoy buscando internamente para ver las excepciones anteriores.

Tengo el mismo problema que dijo @ dannythomas13 . Inicialmente, mi versión de formularios xamarin era 3.4.0.1008975 y cuando la actualicé a 4.2.0.815419, la aplicación se bloquea y muestra el mismo problema. Incluso lo intenté en un proyecto en blanco, se bloquea y da el mismo error. My vs is vs enterprise 2017 versión 15.9.13.

Tengo el mismo problema que @ dannythomas13 y @zimbabirbal dijeron. ¿Puedes arreglarlo para que también funcione con VS2017?

Encontré que System.Collections.Generic.Queue está disponible en

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

y

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

No está disponible en

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

Entonces, si cualquier dll que se basa en Queue cumple con VS2019 y se ejecuta en VS2017, arrojará una excepción que no puede cargar Queue desde mscorlib.
Creo que no solo Queue sino también otras clases en Collections.Generic namespace podrían sufrir el mismo problema.

La compilación de iOS en VS2017 tiene el mismo problema. Ver # 7638.

Tuvo el mismo error en VS 16.0.3, actualizado a la última versión (16.3.1) y el problema está resuelto. #magia

Entonces, si cualquier dll que se basa en Queue cumple con VS2019 y se ejecuta en VS2017, arrojará una excepción que no puede cargar Queue desde mscorlib.
Creo que no solo Queue sino también otras clases en Collections.Generic namespace podrían sufrir el mismo problema.

Esto es algo que el equipo de Xamarin.Android debería mirar @jonathanpeppers @brendanzagaeski

Esto comenzó a suceder porque trasladamos nuestros servidores de compilación de VS 2017 a VS 2019, que tiene versiones más recientes de XA / XI / Mono SDK. Cuando compila con versiones más nuevas de esos SDK, esas versiones ya no funcionarán en versiones anteriores.

Este es el cambio específico que desencadena esta excepción https://github.com/mono/mono/pull/11511

La próxima versión de 4.2 se compilará contra VS 2017 para que aún pueda usarse en VS 2017, pero la 4.3 requerirá que tenga al menos 16.3

La razón de esto es que el requisito de 4.3 tiene que ver con literalmente todas las plataformas que requieren Visual Studio 16 y / o 16.3 para usar los últimos SDK

XCode11 requiere 16.3
Android 10 requiere 16.3 y Android X requiere al menos 16.2
WinUI requiere al menos VS 2019 para utilizar los SDK más compatibles

Hasta ahora no habíamos necesitado construir con los SDK más nuevos, pero ahora tenemos que hacerlo para admitir los marcos más nuevos.

La próxima versión de 4.2 se compilará contra VS 2017 para que aún pueda usarse en VS 2017, pero la 4.3 requerirá que tenga al menos 16.3

ok, dejaremos de usar Xamarin.Forms. VS2019 es un no ir. Adiós. Adiós y RIP Xamarin.

@ MagicAndre1981 Todavía estamos discutiendo opciones. Todavía no hemos tomado la decisión de requerir VS2019 para 4.3.

¿Estaría dispuesto a compartir por qué VS2019 es un "no pasa"? ¿Cuál es su cronograma para la actualización?

¡Gracias!

¿Estaría dispuesto a compartir por qué VS2019 es un "no pasa"?

debido a la interfaz de usuario rota (ventana de inicio modal horrible, este "diálogo de nuevo proyecto" arruinado y el icono de notificación en el botón donde siempre lo paso por alto). VS2019 repite el desastre VS2012

También hay un bloqueo en iOS. ¿También es causado por la versión anterior de VS para Mac? Porque para mí esto está fallando en Azure DevOps, donde seleccioné macOS X Mojave 10.14 como agente para una compilación.

Teniendo en cuenta que este problema está afectando las canalizaciones de compilación en DevOps con macOS 10.14. ¿Hay alguna solución a corto plazo o estamos atascados esperando una nueva versión 4.2.X?

Hola,
necesitamos ayuda y consejo.

Necesito actualizar a 4.2.0.815419 que soluciona un problema con la imagen uri que no funciona en versiones anteriores.
Tenía que entregar a un cliente hoy, pero no pude.
Me gustaría evitar volver a una versión muy antigua de 4.

Sin embargo, todo el día tratando de hacer que iOS se compile contra 4.2.0.815419 obteniendo
"No se pudo resolver" System.Collections.Generic.Stack`1 ". Intenté todo tipo de cosas ... y obtuve diferentes errores que no menciono aquí, ya que pueden confundir las cosas.

Algo definitivamente cambió con 4.2.0.815419 y no podemos construir más en la canalización azul en iOS.

mi última compilación de trabajo fue usando mono 5_16 con 4.1.0.709244

alguna sugerencia ?

Estaba teniendo el mismo problema.
Instalé Xamarin Essentials y nuget me pidió que actualizara Xamarin a la versión 4.2.0.815419.
Volví a la versión 4.2.0.778463 y volvió a funcionar

Veo el mismo problema que @ developer9969 y @oliveiraugusto con la versión 4.2.0.848062 .

MTOUCH: error MT2002: No se pudo resolver la referencia "System.Collections.Generic.Stack`1" de "mscorlib, Version = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e"

Estoy ejecutando la compilación de iOS con el siguiente scritp, especificando la versión MONO SDK y 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"

¿Alguna solución?

Hola equipo
También tengo el mismo problema, ¿hay alguna solución que podamos esperar que funcione con los formularios xamarin en VS 2017?

@ryanmendoza Para corregir la compilación devops de iOS, debe usar xCode 11 y Xamarin sdk 6_4_0. Agregue la tarea de compilación "Use .NET Core" a la canalización con la versión 3.0.100.

@ryanmendoza

Teniendo en cuenta que este problema está afectando las canalizaciones de compilación en DevOps con macOS 10.14. ¿Hay alguna solución a corto plazo o estamos atascados esperando una nueva versión 4.2.X?

En realidad, ahora hay una nueva versión, ¿eso te soluciona las cosas?

Esto debería resolverse en las últimas versiones de Xamarin.Forms publicadas en NuGet. ¡Gracias!

Esto debería resolverse en las últimas versiones de Xamarin.Forms publicadas en NuGet.

¿Qué versión / número de compilación? ¿Cuánto tiempo funcionará XF para los usuarios de VS2017?

4.2.0.848062 y 4.3.0.851321-pre3 son compatibles con VS2017.

Puedo confirmar que el uso de las últimas versiones (mencionadas anteriormente) ha resuelto el problema informado sin la necesidad de actualizar / cambiar sus herramientas existentes.

4.2.0.848062 ... compatible con VS2017.

gracias, puedo confirmar esto.

No tiene sentido conseguir nuevas versiones de Xamarin.Forms para trabajar con herramientas antiguas. Las personas que quieran usar herramientas antiguas aún pueden usar versiones antiguas de Xamarin.Forms. La necesidad de admitir herramientas antiguas sería un lastre para el desarrollo en un repositorio que ya tiene demasiados obstáculos para el desarrollo.

Tengo el mismo problema en Xamarin.Forms.iOS versión 4.3.0.991211 en MacOS Mojave

@samhouts este problema está cerrado, pero el problema aún existe ... ¿Dónde está la solución oficial, o danos al menos la solución de trabajo para solucionar este problema, por favor?

Mire el registro de compilación en Azure DevOps:
image

_Tipo de proyecto - Xamarin.iOS
Mono - 5.12.0
XCode - 10.2.1_

mi configuración .yaml en Azure DevOps

@beylkhanovdamir ¿qué versión de Xamarin.Forms estás usando? Esto ya no debería suceder después de las versiones mencionadas anteriormente.

@jfversluis Todavía me pasa a mí también (versión Xamarin.Forms.iOS 4.3.0.991211 )

@ Sonic3R, ¿está utilizando VS2017 en Windows? VSMac? ¿Puede darnos más detalles?

Visual Studio para Mac, versión 8.3

@jfversluis puedes ver mi configuración .yaml en DevOps

ps Estoy usando '_macOS-latest_' vmImage y la versión XF a continuación
image

@beylkhanovdamir ¿vio este comentario: https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment -537847507

Veo que está configurando la versión del SDK manualmente y está usando Xcode 10, es posible que desee considerar el uso de versiones actuales junto con la versión más reciente de Forms.

@ Sonic3R, ¿ podría compartir un poco más sobre los errores que está viendo en VSMac al compilar? ¿Qué versión de Xcode estás usando?

Chicos, ENCONTRÉ que su recarga en caliente se vuelve a activar, deshabilite la recarga en caliente y su
La aplicación estará bien.

El martes 3 de diciembre de 2019 a las 12:47 p.m. Gerald Versluis [email protected]
escribió:

@beylkhanovdamir https://github.com/beylkhanovdamir viste esto
comentario: # 7602 (comentario)
https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment-537847507

Veo que está configurando la versión del SDK manualmente y está usando Xcode 10,
es posible que desee considerar el uso de versiones actuales junto con las más nuevas
Versión de formularios.

@ Sonic3R https://github.com/Sonic3R ¿ podrías compartir un poco más?
sobre qué errores está viendo en VSMac al compilar?

-
Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/xamarin/Xamarin.Forms/issues/7602?email_source=notifications&email_token=ABK34HN56WUZL3KRXAAKWVDQWZIPTA5CNFSM4IYVWRJKYY3PNVWWK3TUL52HS4DFVREBWG43
o darse de baja
https://github.com/notifications/unsubscribe-auth/ABK34HM2BQTF5PHNEBQVEFDQWZIPTANCNFSM4IYVWRJA
.

-

Saludos
David Buckley
M: 07871 884546

@jfversluis

viste este comentario: # 7602 (comentario)

sí, lo vi, pero no puedo, porque tenemos un proyecto en el que el FW de destino es .netstandard 2.0 (es decir, no 2.1, que es compatible con .net core 3.0), y en este caso, obtendré muchos errores de compilación .
Pero quizás, por ahora, sea realmente la última forma de solucionar este problema.

Hola: Obtener el siguiente mensaje de error en Visual Studio 2017 es compatible con Xamarin.iOS 12.4.0.64. Alguien, por favor, ayúdenos con esto ya que bloqueó nuestro proceso de implementación completo ahora.

C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Xamarin \ iOS \ Xamarin.iOS.Common.targets (795,3): error MT2002: no se pudo resolver "System.Collections.Generic.Stack `1" referencia de "mscorlib, Versión = 2.0.5.0, Cultura = neutral, PublicKeyToken = 7cec85d7bea7798e"

Este mensaje de error aparece SOLO después de emparejar con mac que tiene el mismo Xamarin.iOS, el último xCode y mono 5.18.

Gracias por adelantado

@ryanmendoza Para corregir la compilación devops de iOS, debe usar xCode 11 y Xamarin sdk 6_4_0. Agregue la tarea de compilación "Use .NET Core" a la canalización con la versión 3.0.100.

¿Qué significa esto incluso? Estoy bastante confundido por esto, ¿tienes un ejemplo de YAML que puedas compartir?

¿Qué estoy construyendo con la tarea .netcore? El proyecto iOS ... ¿cómo? Claramente me estoy perdiendo algo.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Papirosnik picture Papirosnik  ·  3Comentarios

simontocknell picture simontocknell  ·  3Comentarios

deakjahn picture deakjahn  ·  3Comentarios

EmilAlipiev picture EmilAlipiev  ·  3Comentarios

MartinWegner picture MartinWegner  ·  3Comentarios