web-dev-qa-db-fra.com

Le nom ne peut pas commencer par le caractère '$', valeur hexadécimale 0x24

J'ai cet avertissement qui ne disparaît jamais et je ne sais pas comment le réparer:

Le nom d'avertissement ne peut pas commencer par le caractère '$', valeur hexadécimale 0x24.

.Android C:\Fichiers de programme (x86)\Microsoft Visual Studio\2017\Communauté\MSBuild\Xamarin\Android 

C:\Fichiers de programme (x86)\Microsoft Visual Studio\2017\Communauté\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 1668 Build 

Après avoir activé la verbosité détaillée, il pointe vers cette section du fichier Xamarin.Android.Common.targets:

<Target Name="_GenerateJavaStubs" DependsOnTargets="_SetLatestTargetFrameworkVersion;_PrepareAssemblies;$(_AfterPrepareAssemblies)" Inputs="$(MSBuildAllProjects);@(_ResolvedAssemblies);$(_AndroidManifestAbs);$(_AndroidBuildPropertiesCache)" Outputs="$(IntermediateOutputPath)Android\AndroidManifest.xml;$(_AcwMapFile);$(_AndroidTypeMappingJavaToManaged);$(_AndroidTypeMappingManagedToJava)">
  <GenerateJavaStubs ResolvedAssemblies="@(_ResolvedAssemblies)" ResolvedUserAssemblies="@(_ResolvedUserAssemblies)" ManifestTemplate="$(_AndroidManifestAbs)" MergedManifestDocuments="@(ExtractedManifestDocuments)" Debug="$(AndroidIncludeDebugSymbols)"
    NeedsInternet="$(AndroidNeedsInternetPermission)" AndroidSdkPlatform="$(_AndroidApiLevel)" AndroidSdkDir="$(_AndroidSdkDirectory)" PackageName="$(_AndroidPackage)" ManifestPlaceholders="$(AndroidManifestPlaceholders)" OutputDirectory="$(IntermediateOutputPath)Android"
    MergedAndroidManifestOutput="$(IntermediateOutputPath)Android\AndroidManifest.xml" UseSharedRuntime="$(AndroidUseSharedRuntime)" EmbedAssemblies="$(EmbedAssembliesIntoApk)" ResourceDirectory="$(MonoAndroidResDirIntermediate)" BundledWearApplicationName="$(BundledWearApplicationPackageName)"
    PackageNamingPolicy="$(AndroidPackageNamingPolicy)" ApplicationJavaClass="$(AndroidApplicationJavaClass)" AcwMapFile="$(_AcwMapFile)">
  </GenerateJavaStubs>
  <ConvertResourcesCases ResourceDirectories="$(MonoAndroidResDirIntermediate)" AcwMapFile="$(_AcwMapFile)" />
</Target>

Je ne sais pas si j'ai besoin de le modifier ou si l'un de mes fichiers est à l'origine du problème. J'ai vérifié deux fois, aucun de mes fichiers ne commence réellement par un $.

Des idées?

Je vous remercie.

21
E. Bourque

Semble être un bug de Xamarin, au moins dans certaines circonstances. Enregistré Github questions ici et ici avec des étapes de repro et un exemple de projet.

1
Nate Cook

Pour moi, une mise à jour de Visual Studio 2017 a fait l'affaire… .. Désormais, il ne s'agit plus que d'un avertissement.

Le nom ne peut pas commencer par le caractère '$', valeur hexadécimale 0x24.

La mise à jour de VS 17 de 15.4.4 à 15.7.4 a été effectuée.

0
mnemonic

En regardant à travers la sortie de diagnostic de Visual Studio, j'ai pu voir beaucoup d'occurrences '\ $', la plupart liées à Google Play.

Pour moi, la solution était que j'avais oublié d'installer Google Play dans le SDK Manager (sous Extras).

0
HelloWorld