C# MAUI - 추가한 layout XML 파일이 Resource.Layout 멤버로 나오지 않는 문제
layout xml 파일을 추가했는데, 소스코드에서 Resource.Layout 멤버 하위로 인텔리센스 열거가 안 됩니다. 물론, 당연히 빌드 오류도 발생합니다.
var id_new = Resource.Layout.activity_new;
// error CS0117: 'ResourceConstant.Layout' does not contain a definition for 'activity_new'
왜냐하면, 기본적으로 MAUI 프로젝트에서 .\Platforms\Android\Resources\layout" 디렉터리에 "Android Laytout template" 파일을 추가해도 해당 파일의 "Build Action"은 (굳이 그렇게 만든 이유는 알 수 없지만) "None"이기 때문입니다. 따라서 이 값을 "Android Resource" 타입으로 바꿔주면 저 문제가 해결됩니다.
Layout Code Behind in .NET for Android - .NET for Android | Microsoft Learn
; https://learn.microsoft.com/en-us/dotnet/android/features/layout-code-behind/
참고로, 한 가지 더 재미있는 것은, "Android Laytout template" 유형으로 파일을 추가할 때 확장자를 axml로 지정해도 자동으로 xml로 바꿔버립니다. 역시 이유는 알 수 없군요. ^^
이외에도 혹시 이런 오류가 발생한다면?
1>C:\temp\MauiApp1\MauiApp1\Platforms\Android\AndroidManifest.xml : error APT2260: resource mipmap/appicon (aka com.companyname.mauiapp1:mipmap/appicon) not found.
1>C:\temp\MauiApp1\MauiApp1\Platforms\Android\AndroidManifest.xml : error APT2260:
1>C:\temp\MauiApp1\MauiApp1\Platforms\Android\AndroidManifest.xml : error APT2260: This error is likely caused by an issue with the AndroidManifest.xml file or an Android manifest generation attribute in a source code file.
1>C:\temp\MauiApp1\MauiApp1\Platforms\Android\AndroidManifest.xml : error APT2260: resource mipmap/appicon_round (aka com.companyname.mauiapp1:mipmap/appicon_round) not found.
1>C:\temp\MauiApp1\MauiApp1\Platforms\Android\AndroidManifest.xml : error APT2260:
1>C:\temp\MauiApp1\MauiApp1\Platforms\Android\AndroidManifest.xml : error APT2260: This error is likely caused by an issue with the AndroidManifest.xml file or an Android manifest generation attribute in a source code file.
1>C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.52\tools\Xamarin.Android.Aapt2.targets(214,3): error APT2067: failed processing manifest.
1>C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.52\tools\Xamarin.Android.Aapt2.targets(214,3): error APT2067:
Clean 시킨 후 다시 빌드를 하면 될 겁니다. ^^;
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]