読者です 読者をやめる 読者になる 読者になる

UnityでAndroid向けのビルドをした時に、 Failed to re-package resourcesで失敗した時の対処方法

Unity Android

先日、購入したUnityのアセットのサンプルシーンをAndroid向けにビルドした時に、下記のようなエラーが出てビルドに失敗しました。

f:id:Takyu:20170215230948p:plain

Build Failure

Failed to re-package resources. See the Console for details.

同時に、数十行のエラーログが出ました。

ログの先頭には、

CommandInvokationFailure: Failed to re-package resources.

というメッセージがあります。これで検索すると、同じような方がいらっしゃいました。
ただし、エラーの対処方法は様々のようです。


http://warapuri.com/post/147141380483/unityでandroid実機に転送しようとしたらエラーが出てビルドできない時の対処法
warapuri.com

  • > Android SDK Build-toolsの最新版を入れないことで解決


qiita.com


clrmemory.com

  • > AdMob(Androidアプリに広告を組み込む機能)のパッケージをインストールし直すことで解決


今回、私の場合はどれでもなく、UnityAssetに最初から入っていたAndroidManifest.xmlの記述を変更することで対応できました。

原因

(1) Assetに最初から入っていたAndroidManifest.xmlの記述がPlayer Settingsとコンフリクトした
(2) Assetに最初から入っていたAndroidManifest.xmlの記述で、no resource foundを引き起こしていた

対処方法 (1) Player Settingsとのコンフリクトを修正

Assetに入っていたAndroid Manifestファイルを修正します。

こちらなどでも紹介しましたが、UnityでAndroidアプリをビルドするために、UnityのフォルダにはAndroidManifest.xmlが入っています。
magicbullet.hatenablog.jp


(すいません、このエラー対応方法の残りがまだできてませんでした。近いうちに書きます)


Macの場合
/アプリケーション/Unity/PlaybackEngine/AndroidPlayer/Apk/AndroidManifest.xml

Windowsの場合
C:\Program Files\Unity\Editor\Data/PlaybackEngines/AndroidPlayer/Apk/AndroidManifest.xml


通常は、ここの記述とBuild Settingsで書いた情報でAndroid用のapkを作成しますが、プロジェクトの中で明示的にmanifestを変更することもできます。

今回使ったアセットでは、最初からPlugins/Androidの中にAndroidManifest.xmlが入っており、target SDK version(ビルド対象のAndroid OS バージョン)が一致していませんでした。

■Build Settings / Player Settings

f:id:Takyu:20170216093857j:plain


■Assets/Plugins/Android/AndroidManifest.xml

f:id:Takyu:20170216093934j:plain

対処方法 (2) 不要なmeta-dataをコメントアウト

これはこのアセット特有の問題ですが、Assets/Plugins/Android/AndroidManifest.xmlの中に、



という記述がありました。また、エラーログに

stderr[
AndroidManifest.xml:13: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').

]

という記述がありました。Google Play Servicesは今回のアセットでは不要なのでコメントアウトしたところ、Unityでビルドが通るようになりました。

判断が難しいところですが、購入したアセットでも明らかに不要なものが書かれてビルドが通らない場合、修正するのもありと思います。


ちなみに、今回試していたのはこのアセットです。Androidで合成音声を出すことができます。

Android Speech TTS

上記2点を修正したことで、Androidの実機で動くようになりました。
そのうち、こちらのアセットの紹介もしたいと思います。