In my Unity project, I have imported the plugins: Android Native Plugin and Chartboost.
Before importing the Chartboost unity package, I can successfully build and run on my Android device. But after importing the Chartboost package, I get this error when I'm trying to build and run.
Here's the build error:
Error building Player: CommandInvokationFailure: Unable to merge android manifests. See the Console for more details.
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/user/Library/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/Unity.app/Contents/BuildTargetTools/AndroidPlayer/sdktools.jar" -
stderr[
Error: [Temp/StagingArea/AndroidManifest-main.xml:8, /Users/user/Documents/Unity Projects/Unity 5.0.0 projects/mygame/Temp/StagingArea/android-libraries/ChartboostSDK/AndroidManifest.xml:11] Trying to merge incompatible /manifest/application/meta-data[@name=com.google.android.gms.version] element:
<meta-data
@android:name="com.google.android.gms.version"
-- @android:value="6587000">
<meta-data
@android:name="com.google.android.gms.version"
++ @android:value="@integer/google_play_services_version">
Error: [Temp/StagingArea/AndroidManifest-main.xml:8, /Users/user/Documents/Unity Projects/Unity 5.0.0 projects/mygame/Temp/StagingArea/android-libraries/google-play-services_lib/AndroidManifest.xml:5] Trying to merge incompatible /manifest/application/meta-data[@name=com.google.android.gms.version] element:
<meta-data
@android:name="com.google.android.gms.version"
-- @android:value="6587000">
<meta-data
@android:name="com.google.android.gms.version"
++ @android:value="@integer/google_play_services_version">
]
stdout[
]
Still new to Android development so I'm kinda at a lost. I've seen some posts online regarding a similar issue and from what I understand is that whenever using multiple plugins, there would also be multiple manifest files and Unity sometimes fails to combine the manifests due to different/conflicting values.
I don't see any values conflicting in the error message though. How do I fix this? Any help is greatly appreciated.
Update: With the help of Max Yankov, I am able to get past the Unable to merge manifests error
. But I am now presented with a new error Unable to convert classes into dex format
Here's the log for that error:
Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/user/Library/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/Unity.app/Contents/BuildTargetTools/AndroidPlayer/sdktools.jar" -
stderr[
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/actions/SearchIntents;
at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122)
at com.android.dx.dex.file.DexFile.add(DexFile.java:161)
at com.android.dx.command.dexer.Main.processClass(Main.java:732)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at SDKMain.main(SDKMain.java:129)
1 error; aborting
]
stdout[
processing archive bin/classes.jar...
processing com/unity3d/player/a$1.class...
processing com/unity3d/player/a$2.class...
processing com/unity3d/player/a$a.class...
processing com/unity3d/player/a.class...
processing com/unity3d/player/b$1.class...
processing com/unity3d/player/b$2.class...
processing com/unity3d/player/b.class...
processing com/unity3d/player/c.class...
processing com/unity3d/player/d$1.class...
processing com/unity3d/player/d$2.class...
processing com/unity3d/player/d.class...
processing com/unity3d/player/e.class...
processing com/unity3d/player/f.class...
processing com/unity3d/player/g.class...
processing com/unity3d/player/h.class...
processing com/unity3d/player/i.class...
processing com/unity3d/player/j$1.class...
processing com/unity3d/player/j$2$1$1.class...
processing com/unity3d/player/j$2$1.class...
processing com/unity3d/player/j$2.class...
processing com/unity3d/player/j.class...
processing com/unity3d/player/k$1.class...
processing com/unity3d/player/k.class...
processing com/unity3d/player/l.class...
processing com/unity3d/player/m.class...
processing com/unity3d/player/n$1.class...
processing com/unity3d/player/n.class...
processing com/unity3d/player/NativeLoader.class...
processing com/unity3d/player/o.class...
processing com/unity3d/player/ReflectionHelper$1.class...
processing com/unity3d/player/ReflectionHelper$a.class...
processing com/unity3d/player/ReflectionHelper.class...
processing com/unity3d/player/p.class...
processing com/unity3d/player/q$1.class...
processing com/unity3d/player/q$2.class...
processing com/unity3d/player/q$3.class...
processing com/unity3d/player/q.class...
processing com/unity3d/player/r.class...
processing com/unity3d/player/s.class...
processing com/unity3d/player/UnityPlayer$1.class...
processing com/unity3d/player/UnityPlayer$2.class...
processing com/unity3d/player/UnityPlayer$3.class...
processing com/unity3d/player/UnityPlayer$4.class...
processing com/unity3d/player/UnityPlayer$5.class...
processing com/unity3d/player/UnityPlayer$6.class...
processing com/unity3d/player/UnityPlayer$7.class...
processing com/unity3d/player/UnityPlayer$8.class...
processing com/unity3d/player/UnityPlayer$9.class...
processing com/unity3d/player/UnityPlayer$10.class...
processing com/unity3d/player/UnityPlayer$11.class...
processing com/unity3d/player/UnityPlayer$12$1.class...
processing com/unity3d/player/UnityPlayer$12.class...
processing com/unity3d/player/UnityPlayer$13.class...
processing com/unity3d/player/UnityPlayer$14.class...
processing com/unity3d/player/UnityPlayer$15.class...
processing com/unity3d/player/UnityPlayer$16.class...
processing com/unity3d/player/UnityPlayer$17.class...
processing com/unity3d/player/UnityPlayer$18.class...
processing com/unity3d/player/UnityPlayer$a.class...
processing com/unity3d/player/UnityPlayer$b.class...
processing com/unity3d/player/UnityPlayer$c.class...
processing com/unity3d/player/UnityPlayer.class...
processing com/unity3d/player/UnityPlayerActivity.class...
processing com/unity3d/player/UnityPlayerNativeActivity.class...
processing com/unity3d/player/UnityPlayerProxyActivity.class...
processing com/unity3d/player/t.class...
processing com/unity3d/player/u$1.class...
processing com/unity3d/player/u.class...
processing com/unity3d/player/WWW.class...
processing org/fmod/FMODAudioDevice$a.class...
processing org/fmod/FMODAudioDevice.class...
processing org/fmod/a.class...
processing bin/classes/./com/chartboost/sdk/unity/Manifest$permission.class...
processing bin/classes/./com/chartboost/sdk/unity/Manifest.class...
processing bin/classes/./com/chartboost/sdk/unity/R$attr.class...
processing bin/classes/./com/chartboost/sdk/unity/R$bool.class...
processing bin/classes/./com/chartboost/sdk/unity/R$color.class...
processing bin/classes/./com/chartboost/sdk/unity/R$dimen.class...
processing bin/classes/./com/chartboost/sdk/unity/R$drawable.class...
processing bin/classes/./com/chartboost/sdk/unity/R$id.class...
processing bin/classes/./com/chartboost/sdk/unity/R$integer.class...
processing bin/classes/./com/chartboost/sdk/unity/R$layout.class...
processing bin/classes/./com/chartboost/sdk/unity/R$raw.class...
processing bin/classes/./com/chartboost/sdk/unity/R$string.class...
processing bin/classes/./com/chartboost/sdk/unity/R$style.class...
processing bin/classes/./com/chartboost/sdk/unity/R$styleable.class...
processing bin/classes/./com/chartboost/sdk/unity/R$xml.class...
processing bin/classes/./com/chartboost/sdk/unity/R.class...
processing bin/classes/./com/facebook/android/Manifest$permission.class...
processing bin/classes/./com/facebook/android/Manifest.class...
processing bin/classes/./com/facebook/android/R$attr.class...
processing bin/classes/./com/facebook/android/R$bool.class...
processing bin/classes/./com/facebook/android/R$color.class...
processing bin/classes/./com/facebook/android/R$dimen.class...
processing bin/classes/./com/facebook/android/R$drawable.class...
processing bin/classes/./com/facebook/android/R$id.class...
processing bin/classes/./com/facebook/android/R$integer.class...
processing bin/classes/./com/facebook/android/R$layout.class...
processing bin/classes/./com/facebook/android/R$raw.class...
processing bin/classes/./com/facebook/android/R$string.class...
processing bin/classes/./com/facebook/android/R$style.class...
processing bin/classes/./com/facebook/android/R$styleable.class...
processing bin/classes/./com/facebook/android/R$xml.class...
processing bin/classes/./com/facebook/android/R.class...
processing bin/classes/./com/google/android/gms/Manifest$permission.class...
processing bin/classes/./com/google/android/gms/Manifest.class...
processing bin/classes/./com/google/android/gms/R$attr.class...
processing bin/classes/./com/google/android/gms/R$bool.class...
processing bin/classes/./com/google/android/gms/R$color.class...
processing bin/classes/./com/google/android/gms/R$dimen.class...
processing bin/classes/./com/google/android/gms/R$drawable.class...
processing bin/classes/./com/google/android/gms/R$id.class...
processing bin/classes/./com/google/android/gms/R$integer.class...
processing bin/classes/./com/google/android/gms/R$layout.class...
processing bin/classes/./com/google/android/gms/R$raw.class...
processing bin/classes/./com/google/android/gms/R$string.class...
processing bin/classes/./com/google/android/gms/R$style.class...
processing bin/classes/./com/google/android/gms/R$styleable.class...
processing bin/classes/./com/google/android/gms/R$xml.class...
processing bin/classes/./com/google/android/gms/R.class...
processing bin/classes/./com/test/asdf/Manifest$permission.class...
processing bin/classes/./com/test/asdf/Manifest.class...
processing bin/classes/./com/test/asdf/R$attr.class...
processing bin/classes/./com/test/asdf/R$bool.class...
processing bin/classes/./com/test/asdf/R$color.class...
processing bin/classes/./com/test/asdf/R$dimen.class...
processing bin/classes/./com/test/asdf/R$drawable.class...
processing bin/classes/./com/test/asdf/R$id.class...
processing bin/classes/./com/test/asdf/R$integer.class...
processing bin/classes/./com/test/asdf/R$layout.class...
processing bin/classes/./com/test/asdf/R$raw.class...
processing bin/classes/./com/test/asdf/R$string.class...
processing bin/classes/./com/test/asdf/R$style.class...
processing bin/classes/./com/test/asdf/R$styleable.class...
processing bin/classes/./com/test/asdf/R$xml.class...
processing bin/classes/./com/test/asdf/R.class...
processing archive plugins/./an_billing.jar...
ignored resource META-INF/MANIFEST.MF
processing com/android/vending/billing/IInAppBillingService$Stub$Proxy.class...
processing com/android/vending/billing/IInAppBillingService$Stub.class...
processing com/android/vending/billing/IInAppBillingService.class...
processing com/androidnative/billing/core/AN_BillingProxyActivity$1.class...
processing com/androidnative/billing/core/AN_BillingProxyActivity.class...
processing com/androidnative/billing/core/BillingHelper$1.class...
processing com/androidnative/billing/core/BillingHelper$2$1.class...
processing com/androidnative/billing/core/BillingHelper$2.class...
processing com/androidnative/billing/core/BillingHelper$3$1.class...
processing com/androidnative/billing/core/BillingHelper$3$2.class...
processing com/androidnative/billing/core/BillingHelper$3.class...
processing com/androidnative/billing/core/BillingHelper.class...
processing com/androidnative/billing/core/BillingManager$1.class...
processing com/androidnative/billing/core/BillingManager$2.class...
processing com/androidnative/billing/core/BillingManager$3.class...
processing com/androidnative/billing/core/BillingManager.class...
processing com/androidnative/billing/core/listeners/AN_PurchaseFinishedListener.class...
processing com/androidnative/billing/core/listeners/AN_QueryInventoryFinishedListener.class...
processing com/androidnative/billing/interfaces/OnBillingPurchaseFinishedListener.class...
processing com/androidnative/billing/interfaces/OnBillingSetupFinishedListener.class...
processing com/androidnative/billing/interfaces/OnConsumeFinishedListener.class...
processing com/androidnative/billing/interfaces/OnConsumeMultiFinishedListener.class...
processing com/androidnative/billing/interfaces/QueryInventoryFinishedListener.class...
processing com/androidnative/billing/models/BillingException.class...
processing com/androidnative/billing/models/BillingResult.class...
processing com/androidnative/billing/models/Inventory.class...
processing com/androidnative/billing/models/Purchase.class...
processing com/androidnative/billing/models/Security.class...
processing com/androidnative/billing/models/SkuDetails.class...
processing com/androidnative/billing/util/Base64.class...
processing com/androidnative/billing/util/Base64DecoderException.class...
processing archive plugins/./an_googleplay.jar...
ignored resource META-INF/MANIFEST.MF
processing com/androidnative/an_googleplay/BuildConfig.class...
processing com/androidnative/an_googleplay/R$attr.class...
processing com/androidnative/an_googleplay/R$drawable.class...
processing com/androidnative/an_googleplay/R$id.class...
processing com/androidnative/an_googleplay/R$layout.class...
processing com/androidnative/an_googleplay/R$string.class...
processing com/androidnative/an_googleplay/R$style.class...
processing com/androidnative/an_googleplay/R.class...
processing com/androidnative/gcm/ANCloudMessageService$1.class...
processing com/androidnative/gcm/ANCloudMessageService$2.class...
processing com/androidnative/gcm/ANCloudMessageService.class...
processing com/androidnative/gcm/GcmBroadcastReceiver.class...
processing com/androidnative/gcm/GcmIntentService.class...
processing com/androidnative/gms/ad/ANMobileAd.class...
processing com/androidnative/gms/ad/AdInAppListner.class...
processing com/androidnative/gms/ad/BannerAdListner.class...
processing com/androidnative/gms/ad/GADBanner.class...
processing com/androidnative/gms/ad/InterstitialAdListner.class...
processing com/androidnative/gms/analytics/AN_AnalyticsProxy.class...
processing com/androidnative/gms/analytics/V4GoogleAnalytics.class...
processing com/androidnative/gms/core/GameClientBridge.class...
processing com/androidnative/gms/core/GameClientManager$1.class...
processing com/androidnative/gms/core/GameClientManager$2.class...
processing com/androidnative/gms/core/GameClientManager$3.class...
processing com/androidnative/gms/core/GameClientManager$4.class...
processing com/androidnative/gms/core/GameClientManager$5.class...
processing com/androidnative/gms/core/GameClientManager.class...
processing com/androidnative/gms/core/GameInvitationManager.class...
processing com/androidnative/gms/core/GooglePlaySupportActivity$1.class...
processing com/androidnative/gms/core/GooglePlaySupportActivity.class...
processing com/androidnative/gms/core/NewGameHelper.class...
processing com/androidnative/gms/listeners/appstate/StateDeleteListener.class...
processing com/androidnative/gms/listeners/appstate/StateUpdateListener.class...
processing com/androidnative/gms/listeners/appstate/StatesLoadedListener.class...
processing com/androidnative/gms/listeners/games/AchievementsLoadListner.class...
processing com/androidnative/gms/listeners/games/AchievementsUpdateListner.class...
processing com/androidnative/gms/listeners/games/LeaderBoardScoreLoaded.class...
processing com/androidnative/gms/listeners/games/LeaderBoardsLoadedListener.class...
processing com/androidnative/gms/listeners/games/PlayerResultListner.class...
processing com/androidnative/gms/listeners/games/PlayerScoreUpdateListner.class...
processing com/androidnative/gms/listeners/games/ScoreSubmitedListner.class...
processing com/androidnative/gms/listeners/network/AN_OnInvitationReceivedListener.class...
processing com/androidnative/gms/listeners/network/AN_RealTimeMessageReceivedListener.class...
processing com/androidnative/gms/listeners/network/AN_RoomStatusUpdateListener.class...
processing com/androidnative/gms/listeners/network/AN_RoomUpdateListener.class...
processing com/androidnative/gms/listeners/quests/AN_AcceptQuestResultListner.class...
processing com/androidnative/gms/listeners/quests/AN_ClaimMilestoneResult.class...
processing com/androidnative/gms/listeners/quests/AN_EventsLoadListner.class...
processing com/androidnative/gms/listeners/quests/AN_LoadQuestsResult.class...
processing com/androidnative/gms/listeners/quests/AN_QuestUpdateListener.class...
processing com/androidnative/gms/listeners/requests/AN_LoadRequestsResultListner.class...
processing com/androidnative/gms/listeners/requests/AN_UpdateRequestsResultListner.class...
processing com/androidnative/gms/listeners/savedgames/DeleteSnapShotListner.class...
processing com/androidnative/gms/listeners/savedgames/DeleteSpapShotResultListner.class...
processing com/androidnative/gms/listeners/savedgames/LoadSnapshotsResultListner.class...
processing com/androidnative/gms/listeners/savedgames/OpenSnapshotListner.class...
processing com/androidnative/gms/listeners/savedgames/SnapshotCreateListner.class...
processing com/androidnative/gms/listeners/savedgames/SnapshotMetadataChangeListner.class...
processing com/androidnative/<message truncated>
It looks like one of the plugins is saving the value of com.google.android.gms.version
in the AndroidManifest.xml itself, and the other uses a string resource; I suppose that there's a file integer.xml
somewhere in the source, and when you find it, there would be a value of google_play_services_version
hidden inside. The com.google.android.gms.version
itself seems to be a required version of Google Play Services; it's reasonable that it would be backward compatible, so I would just pick the largest number out of those two. Check this for details (switch to "Something else" to see the configuration details).
Hi Guys I had an exact similar problem and the Unity thread I mean this link and this one said that update and change the API level and follow up the crap, I also highly recommend to update the android SKD and set JAVA_HOME and ANDROID_HOME in your system variables like me in the following picture
and set path variables for adb.exe and java.exe in your system like this one
BUT what I tried and fixed my problem was that I changed the build system to new Gradle! and that was it.
Cheers =)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With