简体   繁体   中英

Unity3d unable to merge multiple android manifests at compile time

I started a project lately and I tried to add some packages from Firebase to it. The problem is when I'm trying to build an android export unity can't merge android manifest files include in the project. (I'm not sure, but it seems when I am resolving the conflicts its not works because during every build unity deletes manifest files and rebuilds manifests with the same conflict issues but maybe I'm not handling the conflicts well).

Here is the ERROR:

CommandInvokationFailure: Unable to merge android manifests. See the Console for more details. 
C:\Program Files\Java\jdk1.8.0_25\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="E:\sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -

stderr[
Error: [Temp\StagingArea\AndroidManifest-main.xml, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.google.firebase.firebase-iid-17.0.2\AndroidManifest.xml:12] Trying to merge incompatible /manifest/application/service[@name=com.google.firebase.components.ComponentDiscoveryService] element:
  <service
--    @android:name="com.google.firebase.components.ComponentDiscoveryService">
--    <meta-data
--        @android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
  <service
++    @android:exported="false"
++    @android:name="com.google.firebase.components.ComponentDiscoveryService">
++    <meta-data
Error: [Temp\StagingArea\AndroidManifest-main.xml, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.google.firebase.firebase-measurement-connector-impl-17.0.1\AndroidManifest.xml:10] Trying to merge incompatible /manifest/application/service[@name=com.google.firebase.components.ComponentDiscoveryService] element:
  <service
      @android:name="com.google.firebase.components.ComponentDiscoveryService">
      <meta-data
--        @android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
  <service
      @android:name="com.google.firebase.components.ComponentDiscoveryService">
      <meta-data
++        @android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"
]
stdout[
Warning: [Temp\StagingArea\AndroidManifest-main.xml:13, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\android.arch.lifecycle.runtime-1.0.0\AndroidManifest.xml:3] Main manifest has <uses-sdk android:targetSdkVersion='25'> but library uses targetSdkVersion='26'
[Temp\StagingArea\AndroidManifest-main.xml, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.android.support.support-core-ui-26.1.0\AndroidManifest.xml:6] Skipping identical /manifest/application/meta-data[@name=android.support.VERSION] element.
[Temp\StagingArea\AndroidManifest-main.xml, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.android.support.support-core-utils-26.1.0\AndroidManifest.xml:6] Skipping identical /manifest/application/meta-data[@name=android.support.VERSION] element.
[Temp\StagingArea\AndroidManifest-main.xml, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.android.support.support-fragment-26.1.0\AndroidManifest.xml:6] Skipping identical /manifest/application/meta-data[@name=android.support.VERSION] element.
[Temp\StagingArea\AndroidManifest-main.xml, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.android.support.support-media-compat-26.1.0\AndroidManifest.xml:6] Skipping identical /manifest/application/meta-data[@name=android.support.VERSION] element.
[Temp\StagingArea\AndroidManifest-main.xml, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.android.support.support-v4-26.1.0\AndroidManifest.xml:6] Skipping identical /manifest/application/meta-data[@name=android.support.VERSION] element.
[Temp\StagingArea\AndroidManifest-main.xml, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.google.firebase.firebase-analytics-impl-16.2.1\AndroidManifest.xml:12] Skipping identical /manifest/application/receiver[@name=com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver] element.
Warning: [Temp\StagingArea\AndroidManifest-main.xml:13, E:\unity_projects\clones_project\my2048\2048-final\Temp\StagingArea\android-libraries\com.google.firebase.firebase-common-16.0.2\AndroidManifest.xml:2] Main manifest has <uses-sdk android:targetSdkVersion='25'> but library uses targetSdkVersion='26'
]
exit code: 1
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.HostView:OnGUI()

You can try using Gradle system. If it still do not work, then export your project to Android Studio. It will give you better understanding of the problem. Then you can resolve those errors directly from Android Studio.

Make sure that you have already imported required libraries from Assets > Play Service Resolver > Android > Force Resolve.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM