AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【Unity】Androidのresフォルダがビルドエラーになる場合の対処法

最近、Unityを2021.3.9f1にアップデートしたのですが、Assets/Plugin/Android/res に配置していたフォルダの部分で下記のようなエラーが出るようになってしまいました。

今回はこの対処法についてメモしておきたいと思います。

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 <c25421dc6fc44f979deb663080982040>:0)

UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <c25421dc6fc44f979deb663080982040>:0)

 

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

/Users/.gradle/caches/transforms-2/files-2.1/2c97cad732e0673c2400afdfbca75734/jetified-res/res/values-ja/string.xml.meta: Resource and asset merger: The file name must end with .xml

/Users/.gradle/caches/transforms-2/files-2.1/2c97cad732e0673c2400afdfbca75734/jetified-res/res/values-en/string.xml.meta: Resource and asset merger: The file name must end with .xml

/Users/.gradle/caches/transforms-2/files-2.1/2c97cad732e0673c2400afdfbca75734/jetified-res/res/values-ko/strings.xml.meta: Resource and asset merger: The file name must end with .xml

/Users/.gradle/caches/transforms-2/files-2.1/2c97cad732e0673c2400afdfbca75734/jetified-res/res/values-zh/strings.xml.meta: Resource and asset merger: The file name must end with .xml

 

【Unity】Androidのresフォルダがビルドエラーになる場合の対処法① aarを作成する

調べた感じだと、今まで「res」フォルダに入れいていたデータを「aar」化する方法が結構載ってました。

qiita.com

やり方としては「res」フォルダをzip化したあと、拡張子を「aar」にすればOKっぽかったのですが、僕の環境では以下のようなエラーが出てうまくいきませんでした。

 

FAILURE: Build failed with an exception.

 

* What went wrong:

Execution failed for task ':unityLibrary:compileReleaseJavaWithJavac'.

> Could not resolve all files for configuration ':unityLibrary:releaseCompileClasspath'.

   > Failed to transform res-.aar (:res:) to match attributes {artifactType=android-classes-jar, org.gradle.status=integration, org.gradle.usage=java-api}.

      > Execution failed for AarToClassTransform: /Users/.gradle/caches/transforms-2/files-2.1/8a9018a884e3c86fd2be0e0172521d4b/jetified-res.aar.

         > entry

 

【Unity】Androidのresフォルダがビルドエラーになる場合の対処法① res.androidlibを作成する

aarの方法ではうまくいかなかったので、androidlibを作成したところ、うまくいきました。

以下のようなAndroidManifest.xmlとproject.propertiesを用意して、

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>

project.properties

target=android-9 android.library=true

上記2点と「res」を入れたものを1つのフォルダに入れて、拡張子を「androidlib」にしてAssets/Plugin/Android/以下に配置すればOKです。

【Unity】Androidのresフォルダがビルドエラーになる場合の対処法

無事ビルドできたので、今後同様のエラーが出た場合はandroidlibフォルダを作る対応を行いたいと思います。

 

 

 お知らせ

ミステリー推理ゲーム「リアル捜査ゲーム」を最近リリースしました!

もしよろしければダウンロードお願い致します!

app-seed.com

リアル捜査ゲーム-謎解き推理ゲーム-

リアル捜査ゲーム-謎解き推理ゲーム-

  • AppSeed, Incorporated.
  • ゲーム
  • 無料

apps.apple.com

play.google.com