无法同时使用 Firebase 和 Mapbox 构建项目
Unable to build project with both Firebase and Mapbox
我在 Unity 2018.2.1f1 中使用 Mapbox SDK 创建了一个基于位置的游戏,并且它能够正常构建。我的目标是使用 Firebase 向我的项目添加数据库功能,以在线存储 GPS 坐标。
我按照官方教程在 Unity 项目中设置 Firebase。完成后,弹出一个 window 说 "Resolving Android Dependencies",这花了大约半个小时。
从那时起,我就无法构建到我的 Android 设备上。我收到 96 gradle 构建错误,最上面的错误是:
> No toolchains found in the NDK toolchains folder for ABI with prefix:
mips64el-linux-android"
我将项目恢复到 Firebase 之前的版本,但它仍然无法构建,好像 Android 构建工具中的某些内容已更改。
接下来,我尝试了一个完全不同版本的 Unity,并安装了 Unity 2019.2.9f1 的全新安装。我选择使用此版本的 Unity 内置 Android SDK 和 NDK。我将我的项目恢复到最后一个已知的工作版本(Firebase 之前的版本),将其移植到新版本的 Unity,并在继续之前成功构建到我的设备。
然后我按照适当的步骤再次将 Firebase 添加到我的项目中,Unity 中出现了完全相同的弹出窗口 windows,声称它检测到 "obsolete files" 它希望删除(这次我说不),然后它执行相同的 "Resolving Android Dependencies" 过程。
此过程完成后,我没有做任何其他更改,并尝试再次构建。它失败了,我收到了同样的 96 gradle 构建错误。这证实了这个错误在两个不同版本的 Unity 上是可重复的。
我认为这与 Mapbox 和 Firebase 之间的依赖冲突有关。有没有人遇到过这个问题,或者在一个项目中成功地同时使用了这两个东西?
因此,基本问题是某些东西告诉 Android 构建过程为 MIPS 体系结构生成项目文件。此架构已从 r17 中的官方 NDK 中删除(有关受支持的架构,请参阅 this link)。我不确定 Unity 是否支持它,但它不在当前版本中:
我不知道 MapBox 是如何打包和运送的,所以我不完全知道 postprocessing hooks 可能与 Firebase 之间存在冲突。不过,我会尝试给你一些前进的步骤。
首先,确保您拥有来自 Firebase and MapBox 的最新 SDK。此外,当它要求删除过时的文件时,请说是。 Play Services Resolver 应该只针对它跟踪的文件提示这个(并且 Firebase 插件以预期的状态发布)。
如果这没有帮助,请查找包含在您的 Unity 项目中的 mips 文件夹(可能类似于 libs/mips 或 jnilibs/mips)。希望删除这些可以解决问题。
如果上述方法不起作用或不可操作,请尝试使用 mainTemplate.gradle 文件:
如果您按照我写的说明 here 指示 Play Services Resolver 修补您的 mainTemplate.gradle 文件:
您可以直接在文件中仔细检查您的 ABI 过滤器。默认显示:
ndk {
abiFilters **ABIFILTERS**
}
以匹配您在 Unity 中选择的内容。但是您可以使用它来仔细检查 mips64 是否未通过其他过程包含在内。
不幸的是,如果以上选项均无效,我不知道还有什么建议。在那种情况下,我建议 posting 多一点你得到的错误。如果您也可以使用 Firebase sample projects, you can file an issue on that issue tracker directly. Finally, if you don't get an answer here and you do think that it's Firebase related, you can contact the Firebase support 之一重现错误。
希望我的 post 有所帮助!
--帕特里克
我在 Unity 2018.2.1f1 中使用 Mapbox SDK 创建了一个基于位置的游戏,并且它能够正常构建。我的目标是使用 Firebase 向我的项目添加数据库功能,以在线存储 GPS 坐标。
我按照官方教程在 Unity 项目中设置 Firebase。完成后,弹出一个 window 说 "Resolving Android Dependencies",这花了大约半个小时。
从那时起,我就无法构建到我的 Android 设备上。我收到 96 gradle 构建错误,最上面的错误是:
> No toolchains found in the NDK toolchains folder for ABI with prefix:
mips64el-linux-android"
我将项目恢复到 Firebase 之前的版本,但它仍然无法构建,好像 Android 构建工具中的某些内容已更改。
接下来,我尝试了一个完全不同版本的 Unity,并安装了 Unity 2019.2.9f1 的全新安装。我选择使用此版本的 Unity 内置 Android SDK 和 NDK。我将我的项目恢复到最后一个已知的工作版本(Firebase 之前的版本),将其移植到新版本的 Unity,并在继续之前成功构建到我的设备。
然后我按照适当的步骤再次将 Firebase 添加到我的项目中,Unity 中出现了完全相同的弹出窗口 windows,声称它检测到 "obsolete files" 它希望删除(这次我说不),然后它执行相同的 "Resolving Android Dependencies" 过程。
此过程完成后,我没有做任何其他更改,并尝试再次构建。它失败了,我收到了同样的 96 gradle 构建错误。这证实了这个错误在两个不同版本的 Unity 上是可重复的。
我认为这与 Mapbox 和 Firebase 之间的依赖冲突有关。有没有人遇到过这个问题,或者在一个项目中成功地同时使用了这两个东西?
因此,基本问题是某些东西告诉 Android 构建过程为 MIPS 体系结构生成项目文件。此架构已从 r17 中的官方 NDK 中删除(有关受支持的架构,请参阅 this link)。我不确定 Unity 是否支持它,但它不在当前版本中:
我不知道 MapBox 是如何打包和运送的,所以我不完全知道 postprocessing hooks 可能与 Firebase 之间存在冲突。不过,我会尝试给你一些前进的步骤。
首先,确保您拥有来自 Firebase and MapBox 的最新 SDK。此外,当它要求删除过时的文件时,请说是。 Play Services Resolver 应该只针对它跟踪的文件提示这个(并且 Firebase 插件以预期的状态发布)。
如果这没有帮助,请查找包含在您的 Unity 项目中的 mips 文件夹(可能类似于 libs/mips 或 jnilibs/mips)。希望删除这些可以解决问题。
如果上述方法不起作用或不可操作,请尝试使用 mainTemplate.gradle 文件:
如果您按照我写的说明 here 指示 Play Services Resolver 修补您的 mainTemplate.gradle 文件:
您可以直接在文件中仔细检查您的 ABI 过滤器。默认显示:
ndk {
abiFilters **ABIFILTERS**
}
以匹配您在 Unity 中选择的内容。但是您可以使用它来仔细检查 mips64 是否未通过其他过程包含在内。
不幸的是,如果以上选项均无效,我不知道还有什么建议。在那种情况下,我建议 posting 多一点你得到的错误。如果您也可以使用 Firebase sample projects, you can file an issue on that issue tracker directly. Finally, if you don't get an answer here and you do think that it's Firebase related, you can contact the Firebase support 之一重现错误。
希望我的 post 有所帮助!
--帕特里克