Unity 无法使用 facebook sdk 构建 android
Unity Can't build android with facebook sdk
我已将 Facebook SDK (v7.10.1) 添加到我的 Unity 项目中,我的项目中也有 Gamespark SDK。
构建游戏时出现重新打包错误。
有人知道问题出在哪里吗?
CommandInvokationFailure: Failed to re-package resources.
D:\Programmieren\Zubehör\Android SDK\build-tools.0.2\aapt.exe package --
auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I
"D:/Programmieren/Zubehör/Android SDK\platforms\android-26\android.jar" -F
bin/resources.ap_ --extra-packages com.facebook:com.facebook.android -S
"E:\Programmieren\C#\workspaces\Ice Slider\Unity3d\Ice
Slider\Temp\StagingArea\android-libraries\facebook-android-sdk-4.23.0\res" -
S "E:\Programmieren\C#\workspaces\Ice Slider\Unity3d\Ice
Slider\Temp\StagingArea\android-libraries\facebook-android-wrapper-
7.10.1\res"
stderr[
E:\Programmieren\C#\workspaces\Ice Slider\Unity3d\Ice
Slider\Temp\StagingArea\android-libraries\facebook-android-sdk-
4.23.0\res\values\values.xml:131: error: Error retrieving parent for item:
No resource found that matches the given name
'@style/Theme.AppCompat.NoActionBar'.
E:\Programmieren\C#\workspaces\Ice Slider\Unity3d\Ice
Slider\Temp\StagingArea\android-libraries\facebook-android-sdk-
4.23.0\res\values\values.xml:136: error: Error retrieving parent for item:
No resource found that matches the given name
'@style/Theme.AppCompat.Dialog'.
]
stdout[
Configurations:
(default)
Files:
AndroidManifest.xml
Src: () AndroidManifest.xml
您是否使用其他插件?
请尝试如下:
尝试更新最新的 android sdk 和构建工具
如果它不起作用,恢复到旧的 android sdk 版本
删除整个fb sdk并重新导入
这发生在我身上,我尝试尊重方式
最好的解决方案是将 sdk 更改为 -> facebook-unity-sdk-7.9.4
unity 项目中缺少 appcompat 包。最新的 Facebook SDK(7.10、7.11)不包括所有需要的 Android 支持库。
确保您已安装 Android Studio 并从 Android Studio 中为项目的目标 SDK 版本安装必要的支持库。将需要的AAR包从AndroidSDK文件夹下的extras/android/m2repository/com/android/support
(mac上的~/Library/Android/SDK
)复制到Unity工程的Plugins/Android/libs
文件夹中。 AAR 文件位于包名文件夹下的某个位置,在本例中为 appcompat-v7。此文件夹中可能有多个子文件夹。从与您想要的版本相匹配的子文件夹中找到 AAR。
许多插件和 SDK 导入这些系统库的副本。这不是最优的,因为一次只能存在一个版本。因此,我们需要在包含依赖于它们的多个 SDK 的项目中管理这些 Android 支持库。
这个错误可能是由多种原因引起的
- 更新JDK
- 检查 Java 路径。
- 更新Android SDK
- 删除 plugins 文件夹下 unity asset 文件夹中重复的 .jar 文件。
- 在 AndroidManifest.xml 和播放器设置中检查目标版本
应该是一样的。
- 如果这些都不管用。您的错误导致“Android-26”。所以去
androidskd > build-tools 并删除文件夹 android-26 文件夹和
重新构建。
我得到了这个问题的解决方案。
以下是需要执行的几个步骤:
- 删除 Facebook SDK 文件夹。
- 删除 PlayServicesResolver 文件夹。
- 删除插件文件夹。
- 现在使用 Facebook API 和命名空间评论代码。
- 现在导入 FacebookSDK 7.10.0 并在编辑设置选项中使用项目详细信息对其进行配置。
- 现在重新生成 Android 清单文件并取消注释代码。
现在您可以成功为您的项目构建Apk了。
我已将 Facebook SDK (v7.10.1) 添加到我的 Unity 项目中,我的项目中也有 Gamespark SDK。
构建游戏时出现重新打包错误。
有人知道问题出在哪里吗?
CommandInvokationFailure: Failed to re-package resources.
D:\Programmieren\Zubehör\Android SDK\build-tools.0.2\aapt.exe package --
auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I
"D:/Programmieren/Zubehör/Android SDK\platforms\android-26\android.jar" -F
bin/resources.ap_ --extra-packages com.facebook:com.facebook.android -S
"E:\Programmieren\C#\workspaces\Ice Slider\Unity3d\Ice
Slider\Temp\StagingArea\android-libraries\facebook-android-sdk-4.23.0\res" -
S "E:\Programmieren\C#\workspaces\Ice Slider\Unity3d\Ice
Slider\Temp\StagingArea\android-libraries\facebook-android-wrapper-
7.10.1\res"
stderr[
E:\Programmieren\C#\workspaces\Ice Slider\Unity3d\Ice
Slider\Temp\StagingArea\android-libraries\facebook-android-sdk-
4.23.0\res\values\values.xml:131: error: Error retrieving parent for item:
No resource found that matches the given name
'@style/Theme.AppCompat.NoActionBar'.
E:\Programmieren\C#\workspaces\Ice Slider\Unity3d\Ice
Slider\Temp\StagingArea\android-libraries\facebook-android-sdk-
4.23.0\res\values\values.xml:136: error: Error retrieving parent for item:
No resource found that matches the given name
'@style/Theme.AppCompat.Dialog'.
]
stdout[
Configurations:
(default)
Files:
AndroidManifest.xml
Src: () AndroidManifest.xml
您是否使用其他插件?
请尝试如下:
尝试更新最新的 android sdk 和构建工具
如果它不起作用,恢复到旧的 android sdk 版本
删除整个fb sdk并重新导入
这发生在我身上,我尝试尊重方式 最好的解决方案是将 sdk 更改为 -> facebook-unity-sdk-7.9.4
unity 项目中缺少 appcompat 包。最新的 Facebook SDK(7.10、7.11)不包括所有需要的 Android 支持库。
确保您已安装 Android Studio 并从 Android Studio 中为项目的目标 SDK 版本安装必要的支持库。将需要的AAR包从AndroidSDK文件夹下的extras/android/m2repository/com/android/support
(mac上的~/Library/Android/SDK
)复制到Unity工程的Plugins/Android/libs
文件夹中。 AAR 文件位于包名文件夹下的某个位置,在本例中为 appcompat-v7。此文件夹中可能有多个子文件夹。从与您想要的版本相匹配的子文件夹中找到 AAR。
许多插件和 SDK 导入这些系统库的副本。这不是最优的,因为一次只能存在一个版本。因此,我们需要在包含依赖于它们的多个 SDK 的项目中管理这些 Android 支持库。
这个错误可能是由多种原因引起的
- 更新JDK
- 检查 Java 路径。
- 更新Android SDK
- 删除 plugins 文件夹下 unity asset 文件夹中重复的 .jar 文件。
- 在 AndroidManifest.xml 和播放器设置中检查目标版本 应该是一样的。
- 如果这些都不管用。您的错误导致“Android-26”。所以去 androidskd > build-tools 并删除文件夹 android-26 文件夹和 重新构建。
我得到了这个问题的解决方案。 以下是需要执行的几个步骤:
- 删除 Facebook SDK 文件夹。
- 删除 PlayServicesResolver 文件夹。
- 删除插件文件夹。
- 现在使用 Facebook API 和命名空间评论代码。
- 现在导入 FacebookSDK 7.10.0 并在编辑设置选项中使用项目详细信息对其进行配置。
- 现在重新生成 Android 清单文件并取消注释代码。
现在您可以成功为您的项目构建Apk了。