【ARCore on Unity】小米Mix2试用Google-ARcore

Everyone should get to experience augmented reality, so we’re working to bring it to people everywhere, including China. We’ll be supporting ARCore in China on partner devices sold there—starting with Huawei, Xiaomi and Samsung—to enable them to distribute AR apps through their app stores.

——Google ARCore 1.0

看到小米的新机型MIX 2s准备支持ARCore了,然而手里用的还是小米MIX2。从硬件上讲应该差别不大,于是灵机一动,打算试试看MIX2能不能运行基于ARCore的简单AR应用。

实验证明不太行..不过相信以后ARCore能支持更多机型的,我也很期待用全面屏看到AR应用的景象。所以就先把整个过程碰到的问题记一笔。

ARCore可以用Unity作为开发平台,相比苹果公司去年推出的ARKit,上手难度和硬件成本方面都更低。下图是最基本的Hello-World应用效果。


首先当然是跟着文档走:

Quickstart for Unity

  • 安装Android SDK

用「Android Studio」可以方便地进行包管理。

不过这里要注意:Unity最新版目前似乎只支持导出Android 7.1版本的安装包,因此从Android Studio里安装的包版本也要与其尽量一致,而不要使用最新版的8.0,否则后面Build项目的时候会报错。目前我使用的SDK Platfrom版本为7.0和7.1,对应SDK Tools版本为24.0.0和25.0.0。

  • 在Unity中安装Android工程包

在「Build Setting」中可以找到安卓平台的编译器,如果未安装则补充安装。

  • 安装ARCore SDK for Unity

这一步没啥好说的,下载下来是个unitypackage,在后续配置好工程后直接导入即可。

  • 进入开发者模式并打开USB调试

系统设置-我的设备-全部参数,在「全部参数」界面中,连续点击第三行「MIUI版本」五次就打开开发者选项。开发者选项在 系统设置-更多设置 中可以找到,然后开启USB调试

  • Unity工程配置

按文档操作,之后导入下载的ARCore SDK。样例场景目录Assets/GoogleARCore/Examples/HelloAR

  • 导出工程(Build & Run)

在确认手机和电脑正确连接后,这里有两个小坑需要留意:

第一个报错如下:

 Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. 

导出过程中可能会报这个错,这是由于Android SDK中的tools文件夹需要更换(/Users/username/Library/Android/sdk/tools),下载链接可以在这里找到。

第二个:

CommandInvokationFailure: Gradle build failed. /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/java -Xmx1024M -classpath 

这个是Java的JDK需要降低版本,目前官网是10.0的版本,但开发者们表示目前8.0的版本才不会报错。(讨论贴链接


当不再有Bug之后,就可以在手机上安装刚才的apk了。目前运行效果是下面这样:

因为目前ARCore只支持很少的机型(如下图,摘自谷歌ARCore官网),因此无法运行也在情理之中。后来看了相关讨论贴,懂Java和Android的Geek们已经开始改源码来折腾了,似乎能够适配更多机型,不过尝试了他们导出的工程后发现依然不能使用。

但愿随着MIUI的更新迭代,能够更快地让开发者们用上ARCore吧。

假装有打赏功能