使用Unity导出Android项目时出现Facebook SDK问题

4
当Facebook SDK参与时,从Unity3D导出项目到Android Studio时出现了问题。目前我正在使用Unity 5.4.1f1facebook-unity-sdk-7.9.0
以下是重现问题的步骤
  1. 创建一个Unity项目并添加Facebook SDK(导入自定义包等)
  2. 然后从顶部菜单下的Facebook > Edit Settings配置它(只需添加应用程序ID
  3. 在构建设置中选择Android平台并编辑播放器首选项,添加软件包ID并将最小SDK版本设置为15
  4. 保存场景
  5. 尝试构建apk,它应该可以工作
  6. 现在,在构建设置中检查“Google Android项目”,然后单击导出
  7. 之后打开Android Studio并点击导入项目
  8. 选择您选择的项目名称的文件夹,您可以在从Unity导出过程中选择的文件夹中找到它
  9. 按下“下一步”并完成
  10. 当grade完成他的工作并构建时,您会得到错误

错误:(131)检索项目的父项时出错:找不到与给定名称“@style/Theme.AppCompat.NoActionBar”匹配的资源。

错误:(136)检索项目的父项时出错:找不到与给定名称“@style/Theme.AppCompat.Dialog”匹配的资源。

错误:(131)检索项目的父项时出错:找不到与给定名称“@style/Theme.AppCompat.NoActionBar”匹配的资源。

错误:(136)检索项目的父项时出错:找不到与给定名称“@style/Theme.AppCompat.Dialog”匹配的资源。

错误:执行任务失败':facebookandroidsdk4170:processDebugResources'。 com.android.ide.common.process.ProcessException:无法执行aapt

有人遇到过这个问题并已经找到了解决方案吗?

我从未使用过“Google Android项目”导出功能,因为我无法使其正常工作。它导出的项目输出不受Android Studio支持,您必须跳过一些麻烦才能运行它。 坦白地说,如果有任何好的理由导出为项目,我会完全避免它。 请注意,在Unity 5.5(几天前发布)中,您可以在Unity中选择“Gradle”作为构建选项。 - lysergic-acid
我导出项目的原因是因为我需要启用多 dex。我希望升级 Unity 可以解决问题,但我必须检查是否会在升级过程中遇到问题。 - Massimo Frasson
从几个不同的原因来看,使用multidex确实是不鼓励的。如果可以避免使用,那将是最好的解决方案。 - lysergic-acid
我知道,但我别无选择。我已经移除了所有可能的框架等。还有其他解决方案或者其他我应该尝试的吗? - Massimo Frasson
1个回答

0

看起来你缺少了appcompat库,导出到Android Studio的问题在于它不能很好地导出.aar文件(至少在Unity 5.5之前)。

你需要将所有的.aar文件从Plugins/Android(也可能在facebook文件夹中)复制到你的android studio项目libs文件夹中。

然后打开你的应用程序build.gradle(通常命名为app或与你的项目名称相同),并为每个.aar文件在依赖项中添加以下内容:

compile(name: 'aarlibrarywithoutextension', ext: 'aar')

例如,如果您有一个common.aar文件,您应该放在这里:

compile(name: 'common', ext: 'aar')

请确保在该文件中也有这个:

allprojects {
   repositories {
      jcenter()

      flatDir {
        dirs 'libs'
      }
   }
}

由于 flatDir libs 告诉 Android Studio 在那里查找库(请记住,您将所有 .aar 文件从 Unity 复制到 Android Studio 项目中的 libs 文件夹中)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接