J'ai déployé une machine virtuelle sur Azure. J'ai installé Visual Studio 2015, Xamarin et d'autres outils de développement mobile . J'ai fait la même configuration sur mon ordinateur local pour tester mes applications sur mes appareils à partir de Visual Studio.
La seule différence est l'installation du SDK Android. Sur ma machine locale, je n'ai pas de système d'image.
J'ai développé une application sur ma machine virtuelle. Je n'ai aucune erreur pendant la compilation . J'utilise Android.Support.Design, Android.Support.V4, Android.Support.V7.AppCompat, Android.Support.V7.RecyclerView (dernières versions de NuGet) et leur implémentation de MvvmCross.
Je voulais continuer le développement de l'application sur mon ordinateur local. NuGet les paquets sont correctement restaurés.
Quand je construis une application, j'ai quelques erreurs:
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
J'ai essayé
target=Android-19
en target=Android-21
dans C:\Program Files (x86)\Android\android-sdk\extras\Android\support\v7\appcompat\project.properties
Quelqu'un pourrait-il m'expliquer quel est le problème? J'ai abandonné. Même système d'exploitation, mêmes outils, même SDK, même JDK,
Je suis passé des composants Xamarin aux packages NuGet et cela fonctionne maintenant . MvvmCross a installé les dernières versions des packages Nuget (23.3.0) pour ses dépendances (MvvmCross.Droid.Support.V4, MvvmCross.Droid.Support.V7.AppCompat , MvvmCross.Droid.Support.V7.Preference ...). et composants utilisés plus tôt.
Je devais également copier le dossier "C:\Utilisateurs\andres\AppData\Local\Xamarin" à partir de ma machine virtuelle.
Dans Visual Studio, je n'avais aucune notification concernant une mise à jour disponible pour les composants.
Dans mon cas, "Version Android minimale" API 21, mais "Version Android cible" est "utiliser la version du framework cible (API 23)", mais cela ne fonctionnait pas auparavant. pointez à la fois la version en tant qu'API 21 et tout d'un coup, elle commence à fonctionner comme prévu.
Plus tard, j'ai modifié la version minimale Android pour API 21 et la version cible Android comme "utiliser la version du cadre cible (API 23)".
J'ai eu le même problème parce que, j'utilisais ces éléments dans 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>
mais dans color.xml, aucun colorAccent n'a été défini
<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>
simplement résolu en ajoutant
<color name="colorAccent">#3498db</color>
Essaye ça.
Accédez à C:\Program Files (x86)\Android\android-sdk\extras\Android\support\v7\appcompat
.
Ouvrez le fichier project.properties
.
Changez la cible Android en target=Android-21
.
Dans mon cas, faire correspondre la version de Xamarin.Support à la version du framework cible a fonctionné.
Par exemple: Si vous ciblez 25 API, vos bibliothèques de support doivent également être 25.x ..
Dans mon cas, j'ai pu résoudre ce problème en ajoutant Android-layout-xml.xsd
et schemas.Android.com.apk.res.Android.xsd
sous le menu XML -> Schemas
(accessible uniquement dans un fichier axml). Pour l'emplacement exact de ces fichiers, je suggère de faire une recherche sur l'ordinateur car ils ne sont pas dans le dossier de Xamarin, comme suggéré dans d'autres réponses. Dans mon cas, ils étaient dans le projet sous le dossier obj [obj -> Debug -> Schemas ...
]
J'espère que cela vous aidera avec votre problème.
Essayez une ou toutes les solutions suivantes:
Cela a résolu le problème pour moi
J'ai eu un problème similaire lors de l'utilisation de MSBuild sans Visual Studio sur une machine virtuelle. J'essayais de construire un projet Android Xamarin. Le message "erreur lors de l'extraction du parent pour l'élément theme.appcompat.light.darkactionbar" a continué à tomber. J'ai pu le résoudre en ajoutant l'argument/t: restore - par exemple
msbuild /t:SignAndroidPackage /t:restore /p:Configuration=Release <project path>
Notez que la première fois que je l'ai exécuté avec l'argument de restauration, il échouait toujours, mais lorsque j'ai essayé de le reconstruire, cela fonctionnait. J'espère que cela va aider quelqu'un - il m'a fallu quelques heures pour configurer MSBuild correctement!
Dans mon cas, le problème était que je possédais un serveur de paquets Nuget local.
Il m'a fallu un certain temps pour comprendre que Xamarin Studio essayait de mettre à jour les paquets à partir d'une source incorrecte.