Unity3d 用ARFoundation开发安卓AR应用黑屏闪退问题

前言

AR Foundation允许你在Unity内以多平台方式作增强现实平台。该插件为Unity开发者提供了一个界面,但本身并未实现任何增强现实功能。要在目标设备上使用AR Foundation,还需要为Unity 官方支持的目标平台单独提供软件包,如要开发安卓AR功能需要ARCore XR插件,而苹果系统则需要ARKit XR插件。它的核心价值在于,开发者只需编写一套代码,即可部署到多个主流移动平台。它的核心功能有图像识别追踪、人脸识别追踪、3D物体识别追踪等。它可以使我们快速的构建跨平台的AR应用,我快速导入识别图,绑定识别效果,以为如此快速的方式即实现了功能,但是真正打包、运行使用起来发现坑点很多。

问题

黑屏:应用安装后能够正常打开,但进入 AR 场景后,屏幕一片漆黑,没有摄像头画面。

闪退:启动应用、点击进入AR功能、点击几次按钮应用闪退。

原因

起初我以为是我的设置问题,因为我并未编写一行代码,跟着很多教程操作了多遍依然有如上问题,所以,我索性拉取了官方提供的案例工程(ARFoundation Samples),打包尝试后依然是同样的问题。 最后翻遍了AR Foundation的文档和AR Core文档,终于在AR Core的说明文档里找到了支持的设备(中国) ,是我的手机不在ARCore支持在中国地区销售设备列表内。果然,我尝试换了一部手机功能正常了。

支持机型见文末

最新可以进入查询:

https://google-developers.gonglchuangl.net/ar/devices?hl=zh-cn#android_china

ARCore的限制

AR Foundation极大简化了跨平台AR应用的开发流程,方便快捷完成AR应用的开发,但是这也难掩ARCore的对底层平台的限制(尤其是安卓的碎片化和国内环境)。

1设备受限

ARCore指定了他们的认证流程,只有通过认证的设备才会受ARCore支持,而其他设备将无法正常体验AR功能。

2 "谷歌服务"依赖

在海外,ARCore 作为 Google Play Services 的一部分进行推送。在国内,这需要单独、再次安装Google Play Services 。

3 功能支持差异

即使在同一品牌的不同型号上,对 Depth API、Environment Probes 等高级功能的支持也参差不齐。若在代码中强行调用不支持的 API,极易导致不稳定或崩溃。

4系统版本

不同手机厂商对 Android 系统的定制,可能导致 ARCore 服务在某些 ROM 上行为异常,增加了出现黑屏、闪退等未知问题的几率。

结语

开发AR应用,尤其是面向碎片化严重的安卓生态,需要做好硬件、系统和平台限制的对比研究与评估。AR Foundation提供了强大的武器,但其底层依赖(ARCore)的局限性,对于AR Foundation的选用还需要深思熟虑。从机型支持、功能支持与谷歌服务依赖等几个问题需要开发者与决策者有预期的心理落差。

相关推荐
用户2018792831672 小时前
一文讲透 Android Native Heap 监控原理:一间"只进不出"的仓库,和总部派来的侦探
android
YB13753 小时前
Jetpack Compose 动画animate*AsState
android
高晶3 小时前
Android 通讯录应用开发实战:从零搭建 SQLite 数据持久化完整项目
android·设计模式·前端框架
隐擎fox4 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip
换元不配限5 小时前
从 AsyncTask 到现代并发:Android 异步方案的演进与替代实践
android·asynctask·异步编程·方案对比·asynctask替代方案
用户2018792831675 小时前
你的 App 为什么是「电量刺客」?——从一条 WakeLock 追到 Linux 内核的 Android 省电原理全解
android
mmsx6 小时前
Android 安全校验下沉到原生层:防 patch 与构建期自动化
android·安全·自动化
各类产品分享7 小时前
AR 辅助巡检系统落地:技术架构、工作流设计与实施局限
架构·ar·ar巡检
老牛日常随笔7 小时前
Google把Android测试搬进AI对话:ARTEMIS如何用自然语言操作你的手机
android·人工智能·智能手机