#xamarin.forms #xamarin.android
#xamarin.forms #xamarin.android
Вопрос:
У меня есть приложение Xamarin для Android с Xamarin Forms. После обновления с Xamarin Forms 3.4.0.1029999 у меня есть записи в моем ресурсе.Дизайнер, подобный этому:
// aapt resource value: 0x7F030220
public const int bottomtab.navarea = 2130903584;
// aapt resource value: 0x7F030221
public const int bottomtab.tabbar = 2130903585;
С ними я получаю много ошибок, подобных этой:
Я предполагаю, что это из-за точки. Как ни странно, сборка все равно проходит успешно. Как я могу устранить эти ошибки?
Редактировать: ссылка на проект:https://github.com/MoneyFox/MoneyFox
Комментарии:
1. Должно быть, старые папки bin и obj вызывают обычный шум, вы пытались избавиться от них и очистить сборку?
2. блин, я думал, что уже сделал это, но вы правы. Я удалил bin и obj, и это решило проблему.
3. Что ж, тогда мне добавить ответ?
4. это было бы здорово.
5. ну, я только что перенес обратно. Я заметил, что в новой версии, похоже, есть проблема с компоновщиком Android, поэтому я подумал, что было бы разумно подождать немного дольше ^^
Ответ №1:
Похоже, это ошибка, которая была недавно внесена при изменении файла BottomTabLayout.axml, в конечном итоге приводящая к тому, что сгенерированный файл дизайна использует .
символы вместо _
characters. Более подробная информация здесь: https://github.com/xamarin/xamarin-android/issues/3007#issuecomment-486622711
Инженеры Xamarin знают о проблеме и подготовили исправление, которое должно быть выпущено в ближайшее время, но тем временем вы можете устранить эту проблему, вернувшись к старому aapt
генератору, выполнив следующие действия:
- Щелкните правой кнопкой мыши на проекте Android и выберите
Unload Project
. Если проект исчезает из IDE, убедитесь, что решение отображает все файлы, а не только файлы в проекте. - Щелкните правой кнопкой мыши на незагруженном проекте Android и выберите
Edit Project
, чтобы открыть файл .csproj. - В первом
PropertyGroup
теге добавьте следующий:
<AndroidUseManagedDesignTimeResourceGenerator>
False
</AndroidUseManagedDesignTimeResourceGenerator>
- Сохраните изменения, затем щелкните правой кнопкой мыши на проекте Android и выберите
Reload Project
.
Если все идет хорошо, ошибки должны исправиться сами собой сейчас. Возможно, вам придется выполнить очистку и сборку, но, по моему опыту, исправление было немедленным, как только проект Android был перезагружен. Обратите внимание, что согласно отчету об ошибке, aapt
генератор будет работать медленнее, что может быть заметно, если в axml
файлы внесены изменения и выполняется сборка во время разработки.
Комментарии:
1. У меня это сработало!!! После этого я получал еще несколько ошибок компиляции, связанных с маршрутом и routehost, но смог устранить их после обращения к примечанию к выпуску. learn.microsoft.com/en-us/xamarin/xamarin-forms/release-notes /…
Ответ №2:
Выполняйте эти действия при каждом обновлении Xamarin Forms
- Удалите bin и obj, поскольку в них содержатся данные предыдущих версий
- перезапуск vs
- Чистая сборка и запуск
Комментарии:
1. К сожалению, это решает проблему только временно. После следующего поколения ресурсов. Проблема с файлом конструктора вернулась.
2. Вы пытались повторить процедуру или обновить до XF 3.6?
3. Да, несколько раз на нескольких компьютерах. Всегда один и тот же результат.
4. Вы пытались удалить автоматически сгенерированный файл, а затем снова создать проект Android, чтобы он восстановил ресурсы!?
5. Да, я это сделал. Самое интересное, что VS генерирует ресурсы. Дизайнер снова при каждом запуске в папке obj — debug — designtime. и это файл, приводящий к проблеме.