Xamarin.forms: [Bug] O aplicativo Android trava desde a atualização para o Xamarin Forms v4

Criado em 20 set. 2019  ·  56Comentários  ·  Fonte: xamarin/Xamarin.Forms

Desde a atualização para 4.2.0.815419, agora recebo a seguinte exceção lançada em LoadApplication (new App (dbPath, builder)); em MainActivity.cs

Eu também tentei v4.3.0.819712-pre2 no caso de haver uma correção.

Terei que reverter para 3.5.0.129452, mas achei que seria útil registrar o problema.

A vinculação está definida como Nenhum. O aplicativo 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

Comentários muito úteis

Descobri que System.Collections.Generic.Queue está disponível em

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

e

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

Não está disponível em

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

Portanto, se qualquer dll que depende do Queue for compatível com o VS2019 e executado no VS2017, ele lançará uma exceção, não é possível carregar o Queue do mscorlib.
Acho que não apenas Queue, mas também outras classes no namespace Collections.Generic podem sofrer o mesmo problema.

Todos 56 comentários

À primeira vista, isso parece algum tipo de problema de cache. Certifique-se de atualizar todos os projetos para a mesma versão do Xamarin.Forms e, em seguida, limpe a solução. Para ter certeza, exclua as pastas bin e obj de cada um dos projetos também no sistema de arquivos. Remova também o aplicativo do emulador ou dispositivo.

Faça uma reconstrução, execute e esperançosamente tudo deve ser resolvido. Você já tentou alguma dessas coisas?

Descobri que tinha que desinstalar todos os aplicativos 3.0 existentes no telefone e reimplantar limpo e construir sua solução, então deve estar ok. Pode ser que o hot reload tenha acontecido algumas vezes para mim, então certifique-se de que está desativado.

Olá @jfversluis, esses problemas também ocorrem no devops e no appcenter, ambas as áreas limpam a área de trabalho antes de qualquer build, acredito

A pesquisa por essa mensagem de erro parece ter relação com os pacotes de direcionamento e suporte do Android. Você também atualizou isso? Você poderia fornecer mais informações sobre quais pacotes estão instalados exatamente com qual versão e qual versão do Android você está tentando atingir?

Sim, eu atualizei meu nível de API para Andriod 9

Na sexta-feira, 20 de setembro de 2019 às 15:46, Gerald Versluis [email protected]
escrevi:

Procurando por esta mensagem de erro, parece ter a ver com o Google
direcionamento e pacotes de suporte. Você também atualizou isso? Você poderia
fornecem mais informações sobre quais pacotes são instalados exatamente com quais
versão e qual versão do Android você está tentando atingir?

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/xamarin/Xamarin.Forms/issues/7602?email_source=notifications&email_token=ABK34HK3EWZVVCQWHUGBMZLQKTO3PA5CNFSM4IYVWRJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7G5L6I#issuecomment-533583353 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/ABK34HLYSFLSUXVEIB5H67LQKTO3PANCNFSM4IYVWRJA
.

-

Saudações
David Buckley
M: 07871 884 546

Estou tendo o mesmo problema após atualizar para a versão mais recente, na versão anterior tudo funcionava bem, mas quando eu atualizo o xamarin ocorre o erro.

Qualquer pessoa com esse problema pode anexar um pequeno projeto que demonstre esse problema? Obrigado!

Vejo alguém com o mesmo problema aqui no SO: https://stackoverflow.com/questions/58032635/updating-nuget-caused-exception-unhandled-system-typeloadexception

Parece ter a ver com o Maps? Alguém pode verificar isso? E o que Samantha disse, uma reprodução seria super incrível!

Tenho exatamente o mesmo problema, tanto no Android quanto no iOS. No Android, o aplicativo constrói e trava ao iniciar no iOS, o aplicativo não constrói (quando o objetivo de um simulador de dispositivo real funciona bem). Eu recebo o erro mencionado no link de estouro de pilha acima relacionado a System.Collections.Generic.Stack`1

O problema não existirá se eu voltar para 4.2.0.778463

Não tenho certeza se está relacionado a mapas, mas meu aplicativo inclui o pacote nuget Maps.

Eu não uso mapas, isso ocorre mesmo em um projeto novo

@KennyMack você poderia colocar isso em um projeto de reprodução e adicioná-lo aqui?

Recebi o mesmo erro ao atualizar para 4.2 SR2.
Tentei várias sugestões, atualizei todos os pacotes nuget, mas o aplicativo ainda travou.
Comecei um novo aplicativo em branco (no 4.0), funciona bem!
Atualizado para 4.2 SR2, falhou!
Então eu atualizei o Visual Studio (16.2.5), e o problema desapareceu !!

@KennyMack você poderia colocar isso em um projeto de reprodução e adicioná-lo aqui?

Eu simplesmente criei um novo aplicativo vazio e também obtive uma TypeLoadException (mas sem quaisquer detalhes) no VS2017 15.9

image

Então eu atualizei o Visual Studio (16.2.5), e o problema desapareceu !!

com o VS2019 também consigo compilar e executar o aplicativo sem nenhum problema.

@jfversluis Alguma idéia de por que falha no VS2017? Este é um problema Mono com VS2017 15.9?

@jfversluis Aqui o projeto, acabei de criar e atualizar o xamarin para a versão 4.2.0.815419 e o aplicativo travar ao iniciar
https://github.com/KennyMack/ExampleFail

Eu tive o mesmo problema ao usar o AppCenter, também usando 4.2.0.815419 ambas as compilações iOS e Android falharam com a mesma mensagem "classe esperada 'System.Collections.Generic.Stack".

Mudei a configuração de compilação no AppCenter para usar: Versão SDK: Xamarin.iOS 12.14 e versão Xcode: 10.3.
O problema parece ter desaparecido agora desde a mudança para essas configurações, nas compilações do iOS (ainda não experimentei o Android).

@KennyMack Eu retirei sua reprodução e

image

@KennyMack Eu retirei sua reprodução e

qual VS você usa? O problema ocorre apenas em 2017 e não em 2019

@KennyMack Eu retirei sua reprodução e

image

Isso é estranho, na minha versão não funciona.
Estou usando o visual studio 2017 versão 15.9.16.
eu preciso atualizar mais alguma coisa?

Meu erro

Ele trava para mim no VS 2017: - /

Acabamos de mudar nosso pipeline de construção para começar a usar o VS 2019, então estou vasculhando internamente para ver sobre as exceções acima

Estou tendo o mesmo problema que @ dannythomas13 disse. Inicialmente, minha versão do xamarin forms era 3.4.0.1008975 e quando eu atualizei para 4.2.0.815419 o aplicativo travou mostrando o mesmo problema. Mesmo eu tentei no projeto em branco ele trava dando o mesmo erro. My vs is vs enterprise 2017 versão 15.9.13.

Estou tendo o mesmo problema que @ dannythomas13 e @zimbabirbal disseram. você pode consertá-lo para que ele também funcione com o VS2017?

Descobri que System.Collections.Generic.Queue está disponível em

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

e

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

Não está disponível em

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

Portanto, se qualquer dll que depende do Queue for compatível com o VS2019 e executado no VS2017, ele lançará uma exceção, não é possível carregar o Queue do mscorlib.
Acho que não apenas Queue, mas também outras classes no namespace Collections.Generic podem sofrer o mesmo problema.

A versão do iOS no VS2017 tem o mesmo problema. Veja # 7638.

Tive o mesmo erro no VS 16.0.3, atualizado para o mais recente (16.3.1) e o problema foi resolvido. #Magia

Portanto, se qualquer dll que depende do Queue for compatível com o VS2019 e executado no VS2017, ele lançará uma exceção, não é possível carregar o Queue do mscorlib.
Acho que não apenas Queue, mas também outras classes no namespace Collections.Generic podem sofrer o mesmo problema.

Isso é algo que a equipe do Xamarin.Android deveria dar uma olhada em @jonathanpeppers @brendanzagaeski

Isso começou a acontecer porque mudamos nossos servidores de compilação do VS 2017 para o VS 2019, que tem versões mais recentes dos SDKs XA / XI / Mono. Quando você compila com versões mais recentes desses SDKs, essas versões não funcionam mais em versões mais antigas.

Esta é a mudança específica que aciona essa exceção https://github.com/mono/mono/pull/11511

O próximo lançamento do 4.2 será construído contra o VS 2017 para que ainda possa ser usado no VS 2017, mas o 4.3 exigirá que você tenha pelo menos 16.3

A razão para isso é que o requisito em 4.3 tem a ver com literalmente todas as plataformas que requerem Visual Studio 16 e / ou 16.3 para usar os SDKs mais recentes

XCode11 requer 16.3
Android 10 requer 16.3 e Android X requer pelo menos 16.2
WinUI requer pelo menos VS 2019 para usar os SDKs mais compatíveis

Até agora, não precisamos construir com base nos SDKs mais novos, mas agora precisamos para oferecer suporte aos frameworks mais novos

O próximo lançamento do 4.2 será construído contra o VS 2017 para que ainda possa ser usado no VS 2017, mas o 4.3 exigirá que você tenha pelo menos 16.3

ok, então vamos parar de usar Xamarin.Forms. VS2019 é impossível. Tchau. Tchau e RIP Xamarin.

@ MagicAndre1981 Ainda estamos discutindo opções. Ainda não tomamos a decisão de exigir VS2019 para 4.3.

Você estaria disposto a compartilhar por que o VS2019 é um "não vá"? Qual é o seu cronograma para atualização?

Obrigado!

Você estaria disposto a compartilhar por que o VS2019 é um "não vá"?

por causa da interface do usuário quebrada (janela inicial modal horrível, esta "caixa de diálogo Novo projeto" arruinada e o ícone de notificação no botão, onde sempre o ignoro). VS2019 repete o desaster VS2012

Também há uma falha no iOS. Também é causado pela versão mais antiga do VS para Mac? Porque, para mim, isso está falhando no Azure DevOps, onde selecionei o macOS X Mojave 10.14 como um agente para uma compilação.

Em segundo lugar, esse problema está afetando os pipelines de compilação no DevOps usando o macOS 10.14. Existe alguma solução de curto prazo ou estamos presos à espera de uma nova versão 4.2.X?

Olá,
precisamos de ajuda e conselhos.

Preciso atualizar para 4.2.0.815419 que corrige um problema com o uri da imagem que não funcionava nas versões anteriores.
Eu devia entregar para um cliente hoje, mas não consegui.
Gostaria de evitar reverter para uma versão muito antiga do 4.

No entanto, o dia todo tentando fazer ios construir contra 4.2.0.815419, obtendo
"Falha ao resolver" System.Collections.Generic.Stack`1 ". Tentei todos os tipos de coisas ... e recebo erros diferentes que não estou mencionando aqui, pois podem confundir as coisas.

Algo definitivamente mudou com 4.2.0.815419 e não podemos construir mais no pipeline do azure no iOS.

minha última versão de trabalho foi usando mono 5_16 com 4.1.0.709244

alguma sugestão ?

Eu estava tendo o mesmo problema.
Instalei o Xamarin Essentials e o nuget pediu para atualizar o Xamarin para a versão 4.2.0.815419.
Voltei para a versão 4.2.0.778463 e ela voltou a funcionar

Estou vendo o mesmo problema que @ developer9969 e @oliveiraugusto com a versão 4.2.0.848062 .

MTOUCH: erro MT2002: falha ao resolver a referência "System.Collections.Generic.Stack`1" de "mscorlib, Version = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e"

Estou executando a versão do iOS com o scritp abaixo, especificando a versão do MONO SDK e o 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"

Alguma solução alternativa?

HI Time
Também estou tendo o mesmo problema. Existe alguma correção que possamos esperar para trabalhar com os formulários xamarin no VS 2017?

@ryanmendoza Para corrigir o build do iOS devops, você precisa usar o xCode 11 e o Xamarin sdk 6_4_0. Adicione a tarefa de compilação "Use .NET Core" ao pipeline usando a versão 3.0.100.

@ryanmendoza

Em segundo lugar, esse problema está afetando os pipelines de compilação no DevOps usando o macOS 10.14. Existe alguma solução de curto prazo ou estamos presos à espera de uma nova versão 4.2.X?

Na verdade, existe uma nova versão agora, isso corrige as coisas para você?

Isso deve ser resolvido nas versões mais recentes do Xamarin.Forms publicadas no NuGet. Obrigado!

Isso deve ser resolvido nas versões mais recentes do Xamarin.Forms publicadas no NuGet.

qual versão / número de compilação? Por quanto tempo o XF funcionará para usuários do VS2017?

4.2.0.848062 e 4.3.0.851321-pre3 são ambos compatíveis com VS2017.

Posso confirmar que o uso das compilações mais recentes (mencionadas acima) resolveu o problema relatado sem a necessidade de atualizar / alterar suas ferramentas existentes.

4.2.0.848062 ... compatível com VS2017.

obrigado, posso confirmar isso.

Não faz sentido fazer com que novas versões do Xamarin.Forms funcionem com ferramentas antigas. Pessoas que desejam usar ferramentas antigas ainda podem usar versões antigas do Xamarin.Forms. A necessidade de oferecer suporte a ferramentas antigas seria um obstáculo para o desenvolvimento em um repo que já tem muitos obstáculos no desenvolvimento.

Eu tenho o mesmo problema no Xamarin.Forms.iOS versão 4.3.0.991211 no MacOS Mojave

@samhouts este problema foi

Observe o log de compilação no Azure DevOps:
image

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

minha configuração .yaml no Azure DevOps

@beylkhanovdamir qual versão do Xamarin.Forms você está usando? Isso não deve acontecer mais após as versões mencionadas anteriormente

@jfversluis Isso também acontece comigo (Xamarin.Forms.iOS versão 4.3.0.991211 )

@ Sonic3R você está usando o VS2017 no Windows? VSMac? Você pode dar mais alguns detalhes?

Visual Studio para Mac, versão 8.3

@jfversluis você pode olhar minha configuração .yaml no DevOps

ps estou usando '_macOS-latest_' vmImage e versão XF abaixo
image

@beylkhanovdamir você viu este comentário: https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment -537847507

Vejo que você está configurando a versão do SDK manualmente e está usando o Xcode 10, você pode querer usar as versões atuais junto com a versão mais recente do Forms.

@ Sonic3R você poderia compartilhar um pouco mais sobre quais erros você está vendo no VSMac durante a construção? Qual versão do Xcode você está usando?

Pessoal, eu ACHEI que o hot reload foi renativado, desative o hot reload e seu
app vai ficar bem.

Na terça, 3 de dezembro de 2019 às 12:47, Gerald Versluis [email protected]
escrevi:

@beylkhanovdamir https://github.com/beylkhanovdamir você viu isso
comentário: # 7602 (comentário)
https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment-537847507

Vejo que você está definindo a versão do SDK manualmente e está usando o Xcode 10,
você pode querer usar as versões atuais junto com as mais novas
Versão de formulários.

@ Sonic3R https://github.com/Sonic3R você poderia compartilhar um pouco mais
sobre quais erros você está vendo no VSMac durante a construção?

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/xamarin/Xamarin.Forms/issues/7602?email_source=notifications&email_token=ABK34HN56WUZL3KRXAAKWVDQWZIPTA5CNFSM4IYVWRJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFZIBKQ#issuecomment-561152170 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/ABK34HM2BQTF5PHNEBQVEFDQWZIPTANCNFSM4IYVWRJA
.

-

Saudações
David Buckley
M: 07871 884 546

@jfversluis

você viu este comentário: # 7602 (comentário)

sim, eu vi, mas não consigo, porque temos um projeto onde o FW alvo é .netstandard 2.0 (ou seja, não 2.1 que é compatível com .net core 3.0) e, neste caso, vou obter muitos erros de compilação .
Mas talvez, por enquanto, seja realmente a última maneira de corrigir esse problema

Olá - Recebendo a mensagem de erro abaixo no Visual studio 2017 suporta Xamarin.iOS 12.4.0.64. Alguém, por favor, ajude-nos nisso, pois isso bloqueou nosso processo completo de implantação agora.

C: \ Arquivos de programas (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Xamarin \ iOS \ Xamarin.iOS.Common.targets (795,3): erro MT2002: Falha ao resolver "System.Collections.Generic.Stack `1" referência de "mscorlib, Version = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e"

Esta mensagem de erro aparece APENAS após o pareamento com o mac que tem o mesmo Xamarin.iOS, xCode mais recente e mono 5.18.

desde já, obrigado

@ryanmendoza Para corrigir o build do iOS devops, você precisa usar o xCode 11 e o Xamarin sdk 6_4_0. Adicione a tarefa de compilação "Use .NET Core" ao pipeline usando a versão 3.0.100.

O que isso significa? Estou muito confuso com isso, você tem um exemplo de YAML para compartilhar?

O que estou construindo com a tarefa .netcore? O projeto iOS .. como? Eu claramente estou faltando alguma coisa.

Esta página foi útil?
0 / 5 - 0 avaliações