Xamarin.forms: [Ошибка] Android-приложение вылетает после обновления до Xamarin Forms v4

Созданный на 20 сент. 2019  ·  56Комментарии  ·  Источник: xamarin/Xamarin.Forms

После обновления до 4.2.0.815419 я теперь получаю следующее исключение в LoadApplication (новое приложение (dbPath, builder)); в MainActivity.cs

Я также попробовал v4.3.0.819712-pre2 на случай, если там было исправление.

Мне придется вернуться к 3.5.0.129452, но я подумал, что было бы полезно зарегистрировать проблему.

Для связывания установлено значение Нет. Приложение UWP действительно работает.

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

Самый полезный комментарий

Я обнаружил, что System.Collections.Generic.Queue доступен в

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

и

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

Это недоступно в

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

Поэтому, если какая-либо dll, которая полагается на Queue, соответствует VS2019 и работает на VS2017, она выдаст исключение, не могу загрузить Queue из mscorlib.
Я думаю, что не только Queue, но и другие классы в пространстве имен Collections.Generic могут столкнуться с той же проблемой.

Все 56 Комментарий

На первый взгляд это действительно похоже на проблему с кешированием. Убедитесь, что вы обновили все проекты до одной и той же версии Xamarin.Forms, а затем очистите решение. Обязательно удалите папки bin и obj из каждого проекта в файловой системе. Также удалите приложение из эмулятора или устройства.

Сделайте перестройку, запустите и, надеюсь, все разрешится. Вы уже пробовали что-нибудь из этого?

Я обнаружил, что мне пришлось удалить все существующие приложения 3.0 на телефоне и повторно развернуть чистое и построить ваше решение, тогда все должно быть в порядке. Возможно, у меня несколько раз случилась горячая перезагрузка, поэтому убедитесь, что она отключена.

Привет @jfversluis, эти проблемы на самом деле также возникают в DevOps и appcenter, обе области очищают рабочую область перед любой сборкой, я считаю

При поиске этого сообщения об ошибке кажется, что оно связано с пакетами таргетинга и поддержки Android. Вы их тоже обновляли? Не могли бы вы предоставить дополнительную информацию о том, какие пакеты установлены именно с какой версией и какой версией Android вы пытаетесь настроить таргетинг?

Да, я обновил свой уровень API до Andriod 9

В пятницу, 20 сентября 2019 г., в 15:46 Джеральд Верслуис [email protected]
написал:

При поиске этого сообщения об ошибке кажется, что оно связано с Google
пакеты таргетинга и поддержки. Вы их тоже обновляли? Можешь ли ты
предоставьте дополнительную информацию о том, какие пакеты установлены, с какими именно
версия и на какую версию Android вы хотите настроить таргетинг?

-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/xamarin/Xamarin.Forms/issues/7602?email_source=notifications&email_token=ABK34HK3EWZVVCQWHUGBMZLQKTO3PA5CNFSM4IYVWRJKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7G5L6I#issuecomment-533583353 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ABK34HLYSFLSUXVEIB5H67LQKTO3PANCNFSM4IYVWRJA
.

-

С уважением
Дэвид Бакли
М: 07871 884 546

У меня такая же проблема после обновления до последней версии, в предыдущей версии все работает нормально, но когда я обновляю xamarin, возникает ошибка.

Может ли кто-нибудь, у кого возникла эта проблема, прикрепить небольшой проект, демонстрирующий эту проблему? Благодаря!

Я вижу кого-то с такой же проблемой здесь, на SO: https://stackoverflow.com/questions/58032635/updating-nuget-caused-exception-unhandled-system-typeloadexception

Кажется, дело в Картах? Кто-нибудь может это проверить? И что сказала Саманта, репродукция была бы супер классной!

У меня точно такая же проблема как в Android, так и в iOS. На Android приложение строится и вылетает при запуске, на iOS приложение не строится (при ориентации на сборку симулятора реального устройства работает нормально). Я получаю ошибку, указанную в ссылке на переполнение стека выше, относящейся к System.Collections.Generic.Stack`1

Проблема не существует, если я вернусь к 4.2.0.778463

Я не уверен, связано ли это с картами, но мое приложение включает пакет Nuget Maps.

Карты не использую, такое бывает даже в свежем проекте

@KennyMack, не

У меня такая же ошибка при обновлении до 4.2 SR2.
Я попробовал несколько предложений, обновил все пакеты nuget, но приложение все равно вылетело.
Запустил новое пустое приложение (в 4.0), отлично работает!
Обновился до 4.2 SR2, вылетел!
Затем я обновил Visual Studio (16.2.5), и проблема исчезла !!

@KennyMack, не

Я просто создал новое пустое приложение, а также получил исключение TypeLoadException (но без каких-либо деталей) в VS2017 15.9

image

Затем я обновил Visual Studio (16.2.5), и проблема исчезла !!

с VS2019 я также могу скомпилировать и запустить приложение без каких-либо проблем.

@jfversluis Есть идеи, почему это не удается для VS2017? Это проблема Mono с VS2017 15.9?

@jfversluis Здесь проект, я просто создаю и обновляю xamarin до версии 4.2.0.815419 и сбой приложения при запуске
https://github.com/KennyMack/ExampleFail

У меня была такая же проблема при использовании AppCenter, а также при использовании 4.2.0.815419 сборки iOS и Android завершились неудачно с тем же сообщением «ожидаемый класс» System.Collections.Generic.Stack.

Я изменил конфигурацию сборки в AppCenter, чтобы использовать: Версия SDK: Xamarin.iOS 12.14 и версия Xcode: 10.3.
Проблема, похоже, исчезла после изменения этих настроек в сборках iOS (еще не пробовал Android).

@KennyMack Я снял твою репро, и у меня все отлично работает

image

@KennyMack Я снял твою репро, и у меня все отлично работает

какой VS вы используете? Проблема возникает только в 2017 г., а не в 2019 г.

@KennyMack Я снял твою репро, и у меня все отлично работает

image

Это странно, в моей версии не работает.
Я использую Visual Studio 2017 версии 15.9.16.
мне нужно обновить что-нибудь еще?

Моя ошибка

У меня действительно вылетает на VS 2017: - /

Мы только что переместили наш конвейер сборки, чтобы начать использовать VS 2019, поэтому я ищу внутри, чтобы узнать о вышеуказанных исключениях.

У меня такая же проблема, как сказал

У меня такая же проблема, как @zimbabirbal . можно поправить, чтобы он работал и с VS2017?

Я обнаружил, что System.Collections.Generic.Queue доступен в

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

и

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

Это недоступно в

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

Поэтому, если какая-либо dll, которая полагается на Queue, соответствует VS2019 и работает на VS2017, она выдаст исключение, не могу загрузить Queue из mscorlib.
Я думаю, что не только Queue, но и другие классы в пространстве имен Collections.Generic могут столкнуться с той же проблемой.

Сборка iOS на VS2017 имеет ту же проблему. См. № 7638.

Была такая же ошибка в VS 16.0.3, обновлена ​​до последней версии (16.3.1), и проблема решена. # магия

Поэтому, если какая-либо dll, которая полагается на Queue, соответствует VS2019 и работает на VS2017, она выдаст исключение, не могу загрузить Queue из mscorlib.
Я думаю, что не только Queue, но и другие классы в пространстве имен Collections.Generic могут столкнуться с той же проблемой.

Это то, на что команда Xamarin.Android должна обратить внимание на @jonathanpeppers @brendanzagaeski

Это началось с того, что мы переместили наши серверы сборки с VS 2017 на VS 2019, в котором есть более новые версии XA / XI / Mono SDK. При сборке с использованием более новых версий этих SDK эти версии больше не будут работать со старыми версиями.

Это конкретное изменение, вызывающее это исключение https://github.com/mono/mono/pull/11511

Следующий выпуск 4.2 будет построен на VS 2017, поэтому его можно будет использовать в VS 2017, но 4.3 потребует от вас не менее 16.3

Причина этого в том, что требование 4.3 касается буквально каждой платформы, требующей Visual Studio 16 и / или 16.3 для использования последних SDK.

XCode11 требует 16.3
Android 10 требует 16.3, а Android X требует как минимум 16.2
WinUI требует как минимум VS 2019, чтобы использовать наиболее совместимые SDK.

До сих пор нам действительно не нужно было строить против более новых SDK, но теперь мы должны это делать, чтобы поддерживать новые фреймворки.

Следующий выпуск 4.2 будет построен на VS 2017, поэтому его можно будет использовать в VS 2017, но 4.3 потребует от вас не менее 16.3

хорошо, поэтому мы прекратим использование Xamarin.Forms. VS2019 не годится. До свидания. Пока, RIP Xamarin.

@ MagicAndre1981 Мы все еще обсуждаем варианты. Мы еще не приняли решение требовать VS2019 для 4.3.

Не могли бы вы поделиться, почему VS2019 - это «непроходимо»? Каковы ваши сроки обновления?

Благодаря!

Не могли бы вы поделиться, почему VS2019 - это «непроходимо»?

из-за неработающего пользовательского интерфейса (ужасное модальное стартовое окно, испорченный «Диалог нового проекта» и значок уведомления внизу, где я всегда его не замечаю). VS2019 повторяет катастрофу VS2012

На iOS тоже вылетает. Это также вызвано более старой версией VS для Mac? Потому что для меня это не удается в Azure DevOps, где я выбрал macOS X Mojave 10.14 в качестве агента для сборки.

Кроме того, эта проблема влияет на конвейеры сборки в DevOps с использованием macOS 10.14. Есть ли какое-нибудь краткосрочное исправление или мы застряли в ожидании новой версии 4.2.X?

Всем привет,
нам нужна помощь и совет.

Мне нужно перейти на версию 4.2.0.815419, которая устраняет проблему с URI изображения, не работающим в предыдущих версиях.
Я должен был сегодня доставить заказчику, но не смог.
Я бы не хотел возвращаться к очень старой версии 4.

Однако весь день пытался сделать сборку ios против 4.2.0.815419, получая
«Не удалось разрешить» System.Collections.Generic.Stack`1. Пробовал разные вещи ... и получал разные ошибки, о которых я здесь не упоминаю, так как это может сбивать с толку.

Что-то определенно изменилось с выпуском 4.2.0.815419, и мы больше не можем строить на лазурном конвейере на iOS.

моя последняя рабочая сборка использовала моно 5_16 с 4.1.0.709244

какие-либо предложения ?

У меня была такая же проблема.
Я установил Xamarin Essentials, и nuget попросил обновить Xamarin до версии 4.2.0.815419.
Я вернулся к версии 4.2.0.778463, и она снова заработала

Я вижу ту же проблему, что и @ developer9969 и @oliveiraugusto, с 4.2.0.848062 .

MTOUCH: ошибка MT2002: не удалось разрешить ссылку «System.Collections.Generic.Stack`1» из «mscorlib, версия = 2.0.5.0, культура = нейтральный, PublicKeyToken = 7cec85d7bea7798e»

Я запускаю сборку iOS с приведенным ниже сценарием, указывая версию MONO SDK и 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"

Есть обходные пути?

Привет команда
У меня также возникает та же проблема, есть ли какое-либо исправление, которое мы можем ожидать для работы с формами xamarin в VS 2017?

@ryanmendoza Чтобы исправить сборку iOS DevOps, вам нужно использовать xCode 11 и Xamarin sdk 6_4_0. Добавьте в конвейер задачу сборки «Use .NET Core», используя версию 3.0.100.

@ryanmendoza

Кроме того, эта проблема влияет на конвейеры сборки в DevOps с использованием macOS 10.14. Есть ли какое-нибудь краткосрочное исправление или мы застряли в ожидании новой версии 4.2.X?

На самом деле сейчас есть новая версия, это что-то исправляет?

Это должно быть решено в последних версиях Xamarin.Forms, опубликованных в NuGet. Спасибо!

Это должно быть решено в последних версиях Xamarin.Forms, опубликованных в NuGet.

какая версия / номер сборки? Как долго XF будет работать для пользователей VS2017?

4.2.0.848062 и 4.3.0.851321-pre3 совместимы с VS2017.

Я могу подтвердить, что использование последних сборок (упомянутых выше) устранило указанную проблему без необходимости обновлять / изменять существующие инструменты.

4.2.0.848062 ... совместим с VS2017.

спасибо, я могу это подтвердить.

Нет смысла заставлять новые версии Xamarin.Forms работать со старыми инструментами. Люди, которые хотят использовать старые инструменты, могут по-прежнему использовать старые версии Xamarin.Forms. Необходимость поддержки старых инструментов была бы тормозом для разработки в репозитории, который и так уже имеет слишком много тормозов.

У меня такая же проблема с Xamarin.Forms.iOS версии 4.3.0.991211 на MacOS Mojave

@samhouts, эта проблема закрыта, но проблема все еще существует ... Где официальное решение, или дайте нам хотя бы рабочий способ решения этой проблемы, пожалуйста?

Посмотрите журнал сборки в Azure DevOps:
image

_Тип проекта - Xamarin.iOS
Моно - 5.12.0
XCode - 10.2.1_

моя конфигурация .yaml в Azure DevOps

@beylkhanovdamir какую версию Xamarin.Forms вы используете? Этого больше не должно происходить после ранее упомянутых версий.

@jfversluis Это все еще случается со мной (Xamarin.Forms.iOS версия 4.3.0.991211 )

@ Sonic3R вы используете VS2017 в Windows? VSMac? Не могли бы вы подробнее рассказать?

Visual Studio для Mac, версия 8.3

@jfversluis вы можете посмотреть мою конфигурацию .yaml в DevOps

ps Я использую '_macOS-latest_' vmImage и версию XF ниже
image

@beylkhanovdamir вы видели этот комментарий: https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment -537847507

Я вижу, что вы устанавливаете версию SDK вручную и используете Xcode 10, возможно, вы захотите изучить возможность использования текущих версий вместе с новейшей версией Forms.

@ Sonic3R Не могли бы вы рассказать немного больше о том, какие ошибки вы видите в VSMac при сборке? Какую версию Xcode вы используете?

Ребята, я ОБНАРУЖИЛ, что его горячая перезагрузка отключается, отключает горячую перезагрузку и ваш
приложение будет в порядке.

Во вторник, 3 декабря 2019 г., в 12:47 Джеральд Верслуис [email protected]
написал:

@beylkhanovdamir https://github.com/beylkhanovdamir вы это видели
комментарий: # 7602 (комментарий)
https://github.com/xamarin/Xamarin.Forms/issues/7602#issuecomment-537847507

Я вижу, что вы устанавливаете версию SDK вручную и используете Xcode 10,
вы можете изучить возможность использования текущих версий вместе с новейшими
Версия форм.

@ Sonic3R https://github.com/Sonic3R не могли бы вы поделиться еще немного?
какие ошибки вы видите в VSMac при сборке?

-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/xamarin/Xamarin.Forms/issues/7602?email_source=notifications&email_token=ABK34HN56WUZL3KRXAAKWVDQWZIPTA5CNFSM4IYVWRJKYY3PNVWWK3TULX63LJKYY3PNVWWK3TUL52HSG43DFV11
или отписаться
https://github.com/notifications/unsubscribe-auth/ABK34HM2BQTF5PHNEBQVEFDQWZIPTANCNFSM4IYVWRJA
.

-

С уважением
Дэвид Бакли
М: 07871 884 546

@jfversluis

вы видели этот комментарий: # 7602 (комментарий)

да, я видел, но не могу, потому что у нас есть проект, в котором целевым микропрограммным обеспечением является .netstandard 2.0 (т.е. не 2.1, который совместим с .net core 3.0), и в этом случае я получу много ошибок компиляции .
Но, возможно, на данный момент это действительно последний способ решить эту проблему.

Привет! Получение следующего сообщения об ошибке в Visual Studio 2017 поддерживает Xamarin.iOS 12.4.0.64. Кто-нибудь, пожалуйста, помогите нам в этом, поскольку сейчас это заблокировало весь процесс развертывания.

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Xamarin \ iOS \ Xamarin.iOS.Common.targets (795,3): ошибка MT2002: не удалось разрешить «System.Collections.Generic.Stack `1" ссылка из "mscorlib, Version = 2.0.5.0, Culture = нейтральный, PublicKeyToken = 7cec85d7bea7798e"

Это сообщение об ошибке появляется ТОЛЬКО после сопряжения с Mac, на котором есть тот же Xamarin.iOS, последняя версия xCode и моно 5.18.

заранее спасибо

@ryanmendoza Чтобы исправить сборку iOS DevOps, вам нужно использовать xCode 11 и Xamarin sdk 6_4_0. Добавьте в конвейер задачу сборки «Use .NET Core», используя версию 3.0.100.

Что это вообще значит? Я очень смущен этим, у вас есть пример YAML, которым вы могли бы поделиться?

Что я создаю с помощью задачи .netcore? Проект iOS .. как? Я явно что-то упускаю.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги