Xamarin: не найден ресурс, соответствующий данным именам (AppCompat)
Я развернул виртуальную машину на Azure. Я установил Visual Studio 2015, Xamarin и другие мобильные средства разработки.
Я сделал ту же настройку на своем локальном компьютере, чтобы тестировать свои приложения на своих устройствах из Visual Studio
Единственное различие заключается в установке Android SDK. На моей локальной машине у меня нет системы изображений.
![Android DSK Manager]()
Я разработал приложение на своей виртуальной машине. У меня нет ошибок во время компиляции.
Я использую Android.Support.Design, Android.Support.V4, Android.Support.V7.AppCompat, Android.Support.V7.RecyclerView(последние выпуски от NuGet) и их реализацию MvvmCross.
![Моя Azure Virtual Machine]()
Я хотел продолжить разработку приложения на своем локальном компьютере. NuGet пакеты правильно восстановлены.
Когда я создаю приложение, у меня есть некоторые ошибки:
![Мой локальный компьютер]()
Error Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error Error retrieving parent for item: No resource found that matches the given name 'Base.Widget.AppCompat.Button'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'buttonStyle'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'colorAccent'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'colorPrimary'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'colorPrimaryDark'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'windowActionBar'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'windowNoTitle'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error No resource found that matches the given name: attr 'windowNoTitle'. Novatech.Droid D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Я пробовал
- изменить 'Theme.AppCompat.Light.DarkActionBar' на '@android: styles/Theme.AppCompat.Light.DarkActionBar' и некоторые другие (андроид/стили)
- изменить
target=android-19
на target=android-21
в C:\Program Files (x86)\Android\android-sdk\extras\android\support\v7\appcompat\project.properties
Может кто-нибудь объяснить мне, в чем проблема? Я бросил. Такая же ОС, те же инструменты, тот же SDK, тот же JDK,
Ответы
Ответ 1
Я переключился с Xamarin Components на пакеты NuGet и теперь работает.
MvvmCross установил последние версии пакетов Nuget (23.3.0) для своих зависимостей (MvvmCross.Droid.Support.V4, MvvmCross.Droid.Support.V7.AppCompat, MvvmCross.Droid.Support.V7.Preference...). и компоненты, используемые ранее.
Мне также пришлось скопировать папку "C:\Users\andres\AppData\Local\Xamarin" с моей виртуальной машины.
В Visual Studio у меня не было уведомлений об обновлении, доступном для компонентов.
Ответ 2
У меня такая же проблема с Xamarin Studio на Mac. Я решил решить проблему обновления пакета NuGet Xamarin.Android.Support.v7.AppCompat
. Я думаю, вы можете использовать тот же подход, чтобы исправить вашу проблему в Visual Studio.
Посмотрите
![введите описание изображения здесь]()
Ответ 3
В моем случае "Минимальная версия Android" API 21, но "Целевая версия Android" - "использовать версию целевой среды (API 23)", однако это wasn "Я работаю раньше, тогда я указываю обе версии как API 21, и внезапно все работает, как ожидалось.
Позже я изменил Минимальную версию Android - API 21 и целевую версию Android как "использовать целевую версию рамки (API 23)"
Ответ 4
У меня была такая же проблема, потому что я использовал эти элементы в style.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
но внутри color.xml не было определено colorAccent
<resources>
<color name="primary">#2196F3</color>
<color name="primaryDark">#1976D2</color>
<color name="accent">#FFC107</color>
<color name="window_background">#F5F5F5</color>
<color name="splash_background">#3498DB</color>
просто решается добавлением
<color name="colorAccent">#3498db</color>
Ответ 5
Попробуйте это.
Перейдите к C:\Program Files (x86)\Android\android-sdk\extras\android\support\v7\appcompat
.
Откройте project.properties
файл.
Измените целевой Android на target=android-21
.
Ответ 6
Это шаги:
Создание нового приложения
![введите описание изображения здесь]()
Затем щелкните правой кнопкой мыши на "Xamarin.Android.Support.v7.AppCompat", выберите "Обновить".
Подождите, пока IDE завершит обновление и перестроит приложение.
![введите описание изображения здесь]()
Ответ 7
В моем случае я смог исправить эту проблему, добавив android-layout-xml.xsd
и schemas.android.com.apk.res.android.xsd
в меню XML -> Schemas
(доступен только в файле axml).
Для точного местоположения этих файлов я предлагаю выполнить поиск на компьютере, потому что они не находятся в папке Xamarin, как предложено в других ответах. В моем случае они были в проекте под папкой obj [ obj -> Debug -> Schemas ...
]
Надеюсь, это поможет вам в решении вашей проблемы.
Ответ 8
В моем случае проблема заключалась в том, что у меня есть локальный сервер пакетов Nuget.
Понадобилось некоторое время, чтобы понять, что Xamarin Studio пытается обновить пакеты из неправильного источника.
Ответ 9
Попробуйте один или все из них в указанном порядке:
- Решение широкого восстановления пакета
- Перезапустите Visual Studio
- Очистить и восстановить
Это решило проблему для меня
Ответ 10
В моем случае работа с версией Xamarin.Support для версии Target Framework работала.
Например:
Если вы ориентируетесь на 25 API, то ваши библиотеки поддержки также должны быть 25.x..
Ответ 11
У меня была похожая проблема при использовании MSBuild без Visual Studio на виртуальной машине. Я пытался построить проект Xamarin для Android. Он продолжал падать с сообщением "ошибка при получении родителя для элемента theme.appcompat.light.darkactionbar". Я смог решить это, добавив аргумент /t: restore - например
msbuild /t:SignAndroidPackage /t:restore /p:Configuration=Release <project path>
Обратите внимание, что в первый раз, когда я запустил его с аргументом восстановления, он все еще не удался, но когда я попытался построить его снова, это сработало. Надеюсь, это кому-нибудь поможет - у меня ушло несколько часов, чтобы правильно настроить MSBuild!
Ответ 12
Я получал ошибки для атрибутов, на которые ссылались стили, поэтому переименовал attrs.xml в Attrs.xml (а затем снова, когда ошибка снова возникла после чистой перестройки).
Ответ 13
У меня была такая же проблема после перемещения моего проекта из одной папки в другую на точно таком же ноутбуке. Я получил это методом проб и ошибок и до сих пор не знаю причину проблемы. Для ее устранения потребовалось несколько раз очистить решение и перезапустить Visual Studio.
Ответ 14
Ваша версия SDK для компиляции должна соответствовать основной версии библиотеки поддержки.
Поскольку вы используете библиотеку поддержки v23, вам нужно скомпилировать ее с Android SDK v23.
Кроме того, вы можете продолжить компиляцию с v22 Android SDK, переключившись на последнюю версию библиотеки поддержки v22.