[Android][빌드에러] Exception: OBSOLETE - Providing Android resources in Assets/Plugins/Android/res was removed
Unity 2021.3.11f1
I2 Localization(app_name 로컬라이징 용도)
I2 Localization 에셋으로 app_name Localization을 하고 있었는데,
Unity 2021.3.11f1으로 업데이트 한 후에 Android에서 로컬라이징이 되지 않고 기본 설정된 App Name만 나오는 문제가 생겼다.
(대충 검색해보니 Unity 2021.3부터 나오는 이슈 같다)
그래서 생성된 res 폴더를 ../Assets/Plugins/Android/ 하위에 직접 넣고 빌드해보니 아래와 같은 에러가 나온다.
Exception: OBSOLETE - Providing Android resources in Assets/Plugins/Android/res was removed, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of the Manual for more details.
UnityEditor.Android.PostProcessor.Tasks.CheckUserResources.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <5e58a3838afa4e88a08dc92f05003dcc>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <5e58a3838afa4e88a08dc92f05003dcc>:0)
UnityEditor.Android.PostProcessAndroidPlayer.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTarget target) (at <5e58a3838afa4e88a08dc92f05003dcc>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTarget target) (at <5e58a3838afa4e88a08dc92f05003dcc>:0)
UnityEditor.PostprocessBuildPlayer.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target) (at <4e64905d831f4883a53259ef37fb023b>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
app_name 로컬라이징에 사용되던 /res/ 폴더 하위에 넣는 방식을 Unity 2021.3 이후에는 더이상 지원하지 않나보다.
그래서 검색해보니 아래 링크에 해결방법이 적혀있다.
[링크] https://develop.hateblo.jp/entry/android-res-error
해결방법은 링크의 res.androidlib 폴더를 만드는 방법을 참조하면 된다.
링크의 xml 파일등이 띄어쓰기등이 좀 문제 있어서 겸사겸사 간단히 요약해서 적어 둠.
[해결방법]
1. ../Assets/Plugins/Android/ 하위에 res.androidlib 폴더 생성
2. res.androidlib 폴더에 아래 파일을 다운받아서 추가하거나 AndroidManifest.xml 파일 직접 생성해서 입력
[참조] AndroidManifest.xml 파일 내용
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="custom.android.res" android:versionCode="1" android:versionName="1.0">
</manifest>
2. res.androidlib 폴더에 아래 파일을 다운받아서 추가하거나 project.properties 파일 직접 생성해서 입력
[참조] project.properties 파일 내용
target=android-9
android.library=true
3. 기존에 있던 res 폴더(하위에 values/values-en/values-ko 등 포함)를 res.androidlib 폴더로 이동
4. 위의 순서 진행하면 아래와 같이 된다.
5. 이제 빌드 하면.. 된다!!
[참조] [Unity] 안드로이드 국가별 앱 이름 변경
[참조] Unity Android 빌드 후 국가별(언어별) 앱 이름 대응