다음을 통해 공유


Android용 .NET 오류 XA1041

메시지 예제

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.

Issue

문제는 둘 다 MonoAndroidAssetPrefix 상대 MonoAndroidResourcePrefix 디렉터리 경로가 될 것으로 예상된다는 것입니다. 이 정보는 앱을 패키지할 때 자산 또는 리소스에서 루트 디렉터리 정보를 "제거"하는 데 사용됩니다. 속성에 전체 경로가 포함되어 있으므로 오류가 발생합니다.

예를 들어 다음 구조를 고려합니다.

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

최종 .apk 단계에서는 파일이 Foo.txtBar.txt 폴더에 assets 배치될 것으로 예상합니다. 이 작업을 올바르게 수행하려면 빌드 시스템에서 자산이 있는 폴더의 이름을 알고 있어야 합니다. 기본적으로 "자산"이지만 다른 폴더 이름도 지원됩니다.

위의 예제에서는 사용자가 MonoAndroidAssetPrefix을(를) "MyAssets" 값으로 설정할 것으로 예상합니다. 이렇게 하면 패키징 중에 "Foo.txt" 등의 경로의 "MyAssets" 부분이 제거됩니다. MonoAndroidAssetPrefix/Users/xxx/Foo/MyAssets 또는 c:\Users\xxx\Foo\MyAssets로 설정된 경우 이 오류 메시지가 표시됩니다.

해결 방법

이에 대한 수정 사항은 값 MonoAndroidAssetPrefix 또는 MonoAndroidResourcePrefix값에 전체 경로를 사용하지 않는 것입니다. 자산이 저장되는 폴더 경로와 일치하는 상대 디렉터리 경로여야 합니다.