スポンサーリンク
※サイト運営にサーバーは必須です※
~ ロリポップ! はコスパのよい初心者向けサーバーです~
はじめに
Admobを導入して、android用のapkファイルをビルドしようとしたらエラーが出た。
Build failure
Unable to merge android manifests. See the Console for more details.
※Unityのバージョンは、5.5.1f1
状況
ファルダの名前は、admob_test
Asset直下に、適当なsceneを作成(ここで、名前はmainとしている)。
GoogleMobileAds.unitypackageをインポートして、ビルドすると失敗する
対応
私はmanifestが何だかあまりわかっていないが、色々調べてみるといくつか気が付いたことがある。
2つの異なるパスにmanifestが存在し、内容的に異なることが書かれている。
C:\(省略) \admob_test \Assets\Plugins\Android\GoogleMobileAdsPlugin
「AndroidManifest.xml」を開くと以下のようになっている
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0" encoding="utf-8"?> <!-- This Google Mobile Ads plugin library manifest will get merged with your application's manifest, adding the necessary activity and permissions required for displaying ads. --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity" android:versionName="1.0" android:versionCode="1"> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <!-- Uncomment to add billing for in-app purchase ads --> <!--<uses-permission android:name="com.android.vending.BILLING"/> --> <application> </application> </manifest> |
C:\(省略) \admob_test\Temp\StagingArea
「AndroidManifest-main.xml」を開くと以下のようになっている
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools" android:installLocation="preferExternal" android:versionName="1.0" android:versionCode="1"> <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" /> <application android:theme="@style/UnityThemeSelector" android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true"> <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> </application> <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="25" /> </manifest> |
この2つのmanifestにおいて、「android:minSdkVersion」の値と「android:targetSdkVersion」の値が異なるのが原因っぽい。
どっちに合わせるべきかよくわからなかったが、「AndroidManifest.xml」の値の方を変えて、「AndroidManifest-main.xml」の値に合わせる。
android:minSdkVersion=”14″→”9″
android:targetSdkVersion=”19″→”25″
こうすればおそらくビルドが通るようになる。
一応、私が現在使っている「AndroidManifest.xml」を載せておく、
意味があるかいまいちよくわかっていないが、<application>~</application>の間も「AndroidManifest.xml」と「AndroidManifest-main.xml」で同じ内容にしてある。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?xml version="1.0" encoding="utf-8"?> <!-- This Google Mobile Ads plugin library manifest will get merged with your application's manifest, adding the necessary activity and permissions required for displaying ads. --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity" android:versionName="1.0" android:versionCode="1"> <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="25" /> <!-- Uncomment to add billing for in-app purchase ads --> <!--<uses-permission android:name="com.android.vending.BILLING"/> --> <application> <activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" /> </activity> </application> </manifest> |
~ギャンブルに絶対儲かる必勝法があるのだろうか?~
私(サイト主)はこの疑問に対して非常に興味を持ち、プログラミングで検証してみました。
このサイトを応援してもいいかなと思う人はぜひとも購入を検討してみてください。
コメント