Repro - Mobile Analytics for growth
English
アカウント登録 管理画面に戻る
  • 動作環境
  • 管理画面ガイド
  • 開発ガイド
  • リリースノート
  • FAQ

古いUnityを利用したAndroidアプリビルドでAndroidManifest.xmlのマージに失敗する原因と対処方法¶

古いUnityでAndroidアプリをビルドをする際に、次のようなエラーによりAndroidManifest.xmlのマージに失敗することがあります。

CommandInvokationFailure: Unable to merge android manifests. See the Console for more details.
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/john/Library/Android/sdk.old/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity5.4.5/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -

stderr[

]
stdout[
[Temp/StagingArea/AndroidManifest-main.xml:25, /Users/john/sample/unity5/Temp/StagingArea/android-libraries/repro-android-sdk-2.7.9/AndroidManifest.xml:11] Skipping identical /manifest/application/receiver[@name=com.sample.notification.IntentHandler] element.
Warning: [Temp/StagingArea/AndroidManifest-main.xml:31, /Users/john/sample/unity5/Temp/StagingArea/android-libraries/repro-android-sdk-2.7.9/AndroidManifest.xml:3] Main manifest has <uses-sdk android:targetSdkVersion='25'> but library uses targetSdkVersion='26'
]

原因

Repro.unitypackage に含まれるAARファイルのAndroidManifest.xmlでは、 uses-sdk タグを使ってtargetSdkVersionを指定しています。通常はアプリのtargetSdkVersionが優先されますが、古いUnityではAARとアプリのtargetSdkVersionが異なる場合にビルドエラーが発生します。

注釈

AndroidManifest.xmlのマージエラーについて、詳しくは こちら をご覧ください。

この問題は、以下の対策が可能です。

対策

  1. Unity PackageをImportしたプロジェクトから、 Assets > Plugins > Android > libs にあるAARファイルを削除
  2. repro-unity-sdkにある removed-uses-sdk-aar フォルダのAARファイルを Assets > Plugins > Android > libs へコピー
Replace android sdk without uses-sdk tag.

この時、コピーしたAARファイルのAndroidManifest.xmlでは uses-sdk タグが除外されているため、Android SDK Toolの機能により以下のパーミッションが追加されることがあります。

  • READ_PHONE_STATE
  • WRITE_EXTERNAL_STORAGE
  • READ_EXTERNAL_STORAGE

このうちアプリで使っていないパーミッションを除外したい場合は、アプリのAndroidManifest.xmlに以下の該当する uses-permission タグを追加してください。

<application ...

+    <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />

...

</application>

注釈

パーミッションが自動で追加される条件について、詳しくは こちら を参照してください。

About Us Careers Terms of Service Privacy Policy Cookie Policy

© 2022 Repro Inc.