Compartilhar via


Erro do .NET para Android XA1041

Mensagens de exemplo

error XA1041: The MSBuild property 'MonoAndroidAssetPrefix' has an invalid value of 'c:\Foo\Assets'. The value is expected to be a directory path representing the relative location of your Assets or Resources.
error XA1041: The MSBuild property 'MonoAndroidResourcePrefix' has an invalid value of 'c:\Foo\Resources'. The value is expected to be a directory path representing the relative location of your Assets or Resources.

Questão

O problema é que espera-se que ambos MonoAndroidAssetPrefix e MonoAndroidResourcePrefix sejam um caminho de diretório relativo. Essas informações são usadas para "retirar" as informações do diretório raiz (pasta principal) do ativo ou do recurso quando empacotamos o aplicativo. O erro é gerado porque a propriedade contém um caminho completo.

Por exemplo, considere a seguinte estrutura:

Foo.csproj
MyAssets/
    Foo.txt
    Subfolder/
        Bar.txt
MainActivity.cs

No final .apk, esperamos que os arquivos Foo.txt sejam colocados Bar.txt na pasta assets. Para fazer isso corretamente, o sistema de build precisa saber o nome da pasta na qual os ativos estão localizados. Por padrão, isso é "Ativos", mas também há suporte para outros nomes de pastas.

No exemplo acima, esperamos que o usuário defina MonoAndroidAssetPrefix como um valor de "MyAssets". Isso garantiria que a parte "MyAssets" do caminho para "Foo.txt", etc., fosse removida durante o empacotamento. Se MonoAndroidAssetPrefix estiver definido como /Users/xxx/Foo/MyAssets ou c:\Users\xxx\Foo\MyAssets, você verá essa mensagem de erro.

Solução

A correção para isso é não usar um caminho completo para os valores de MonoAndroidAssetPrefix ou MonoAndroidResourcePrefix. Eles devem ser um caminho de diretório relativo que corresponda ao caminho da pasta no qual seus ativos são armazenados.