构建 Android 项目时在 Unity3D 中合并清单文件问题
Posted
技术标签:
【中文标题】构建 Android 项目时在 Unity3D 中合并清单文件问题【英文标题】:Merging Manifest files issue in Unity3D when building Android Project 【发布时间】:2016-10-18 18:54:13 【问题描述】:TL;DR
大家好,我正在开发适用于 android 的 Unity3D 应用程序。但是,当我想构建 Android 项目时。错误显示清单文件冲突。我搜索了一段时间,这些冲突大多是版本冲突。我想我已经通过手动更改所有清单文件中的 minSDKVersion 和 targetSDKVersion 来解决它。但是,我无法解决这个问题(总共 3 个错误),
(1) 错误:[Temp/StagingArea/AndroidManifest-main.xml:36, /Temp/StagingArea/android-libraries/facebook-android-sdk-4.14.0/AndroidManifest.xml:6] 试图合并不兼容/manifest/application/activity[@name=com.facebook.FacebookActivity] 元素:
UnityEditor.HostView:OnGUI()
(2) CommandInvokationFailure:无法合并 android 清单。有关更多详细信息,请参阅控制台。 /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/xxx/Library/Android/sdk/tools" -Dfile.encoding =UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -
标准错误[ 错误:[Temp/StagingArea/AndroidManifest-main.xml:36, /Temp/StagingArea/android-libraries/facebook-android-sdk-4.14.0/AndroidManifest.xml:6] 试图合并不兼容的 /manifest/application/activity [@name=com.facebook.FacebookActivity] 元素:
<activity
-- @android:name="com.facebook.FacebookActivity">
--</activity>
--(end reached)
<activity
++ @android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
++ @android:name="com.facebook.FacebookActivity"
++ @android:theme="@android:style/Theme.Translucent.NoTitleBar">
]
标准输出[ [Temp/StagingArea/AndroidManifest-main.xml:8, /Temp/StagingArea/android-libraries/NatCam/AndroidManifest.xml:18] 跳过相同的 /manifest/application/meta-data[@name=com.google.android. gms.version] 元素。 ] 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()
(3) 构建播放器时出错:CommandInvokationFailure:无法合并 android 清单。有关更多详细信息,请参阅控制台。 /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/xxx/Library/Android/sdk/tools" -Dfile.encoding =UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -
标准错误[ 错误:[Temp/StagingArea/AndroidManifest-main.xml:36, /Temp/StagingArea/android-libraries/facebook-android-sdk-4.14.0/AndroidManifest.xml:6] 试图合并不兼容的 /manifest/application/activity [@name=com.facebook.FacebookActivity] 元素:
<activity
-- @android:name="com.facebook.FacebookActivity">
--</activity>
--(end reached)
<activity
++ @android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
++ @android:name="com.facebook.FacebookActivity"
++ @android:theme="@android:style/Theme.Translucent.NoTitleBar">
]
标准输出[ [Temp/StagingArea/AndroidManifest-main.xml:8, /Temp/StagingArea/android-libraries/NatCam/AndroidManifest.xml:18] 跳过相同的 /manifest/application/meta-data[@name=com.google.android. gms.version] 元素。 ]
(抱歉,格式错误,但必须将“”标记为代码而不是引号)这似乎是活动问题,我发现了this。由于我之前从未接触过 Android 项目,因此我不知道这个“活动”是关于什么的。谁能指出这里有什么问题?
【问题讨论】:
【参考方案1】:无法合并清单,因为您有重复的 Facebook 活动声明。
您很可能不小心在项目中拥有多个 Facebook AndroidManifest 副本。
您不需要自己编辑清单,它们应该开箱即用。
只需浏览您的项目并删除您找到的所有重复项。
最坏的情况,从您的项目中删除所有 Facebook 并重新导入插件。
对于一些背景信息,可以将活动想象成统一的场景。在清单中,您必须声明所有活动。合并时,如果找到了 2 个同名的活动,它不知道该做什么并抛出该错误。
【讨论】:
好的,我可以看看并尝试一下,提前非常感谢! @turnipinindia 确实,我同时导入了 FB SDK 和一个包含 FB SDK 的插件。我相信这是问题所在。那么从技术上讲,我可以简单地删除这两个清单文件之一中的一个 FB 声明 吗? 您好,谢谢!我手动删除了一个“Facebook 活动”,它成功了!以上是关于构建 Android 项目时在 Unity3D 中合并清单文件问题的主要内容,如果未能解决你的问题,请参考以下文章
Unity 在为 Android 构建时在运行时抛出 IL2CPP 构建错误? 2018.4.5f1
Pjsip 在多线程中调用它的函数时在 android 上崩溃
我在构建应用程序时在 android studio 中遇到了 Android 资源链接失败错误。我不知道如何解决这个问题。我是 Android Studio 的新手 [关闭]