HartisanBUAA / Camereon-Model-Tracker

GNU General Public License v3.0
32 stars 4 forks source link

安卓手机一加6,能够成功部署,但是程序会闪退。 #3

Open Hanning-Liu opened 6 months ago

Hanning-Liu commented 6 months ago

video.zip 录屏文件在压缩包中。

Hanning-Liu commented 6 months ago

Unity 项目设置与部署设置如下图,均与Readme文件中的说明一致。 image image image image image

HartisanBUAA commented 6 months ago
  1. 手机上安装ARCore了吧?
  2. 有一点不同的是,我在最后一张图中没有勾选“Build App Bundle”,这样生成的是apk文件进行安装的。如果勾选了,则生成的是aab文件。你取消勾选试试看。
Hanning-Liu commented 6 months ago

感谢您的回复! 1.手机上使用该链接https://github.com/google-ar/arcore-android-sdk/releases/tag/1.42.0 中的apk文件安装了ARCore,安装完成之后在手机上不显示图标,所以无法确定有无错误信息。 2.我取消勾选“Build App Bundle”,重新部署至手机。程序会闪退,与上文录屏文件中的现象相同。

Hanning-Liu commented 6 months ago

有一个有意思的现象: 安卓手机启动软件后,如果相机捕捉到的画面为纯黑,或其他无明显特征点的纯色(全噪点),则不会闪退。 如果相机捕捉到了有环境信息(特征点)的画面后就会闪烁几下,然后程序会闪退。 感觉可能和cmr软件的代码相关,或者可能和我Unity中“CMRModelTracker” Game Object的设置相关。 Unity中“CMRModelTracker“Game Object的设置如下: image

Hanning-Liu commented 6 months ago

Unity 文件如下: Test_CMR_Android.zip

HartisanBUAA commented 6 months ago
  1. 如果画面为纯黑(比如捂住了摄像头),程序就会一直长时间运行下去不闪退吗?
  2. 闪退前是否显示了红色的线框?ARCore初始化完成后,CMR才会进行初始化并显示线框,如果压根没有显示,说明程序在ARCore初始化时就crash了,可能与你安装的ARCore有关。
  3. 一加6在ARCore的支持名单里,应该可以从应用商店中直接搜索“Google Play Services for AR”进行安装,用这个方式试试看。
Hanning-Liu commented 6 months ago
  1. 是的,如果捂住摄像头就不会闪退。
  2. 闪退前没有显示红色线框,我在系统设置-应用程序中看到了“Google Play Services for AR”,应该是成功安装了
  3. 我在google play应用商店和一加应用商店中没有找到“Google Play Services for AR”,在APKPure中找到了该应用,显示我的手机已经安装了。
HartisanBUAA commented 6 months ago
  1. 我刚刚试了你的unity工程,首先你的模型没有设置初始transform,在相机里看不到(因为z=0),但这只会导致没有线框,不会导致闪退;
  2. 我设置了初始transform,打包发布在我的测试机华为P30上可以正常运行并跟踪;
  3. 我重新Google了一下,发现一加6虽然在ARCore官方的支持列表里,但是是海外版列表。中国区列表中没有一加6。所以虽然看起来安装成功了,但可能软硬件根本不支持ARCore。 综上,大概率是国内版的一加6不支持ARCore导致的。 参考: https://developers.google.cn/ar/devices?hl=zh-cn#android_china https://zhuanlan.zhihu.com/p/61970665 (评论部分)