首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一Android应用程序在Google Play Services进行AR更新后崩溃(在2020年4月11日之后)

统一Android应用程序在Google Play Services进行AR更新后崩溃(在2020年4月11日之后)
EN

Stack Overflow用户
提问于 2020-08-13 04:29:25
回答 1查看 2.1K关注 0票数 2

我正在合作开发一个使用AR基金会的Android应用程序。从一天到另一天(没有进行新的构建),应用程序每次都会在启动屏幕后崩溃。我正在开发我的华为伙伴20 Pro,但我的队友使用其他Android手机(三星、小米和摩托罗拉),他们继续开发这款应用程序,对他们来说效果很好。我拉他们的承诺(这对他们有用),不做任何改变,它一直在我的手机上崩溃。我们正在使用Firebase,所以我有来自Crashlytics的信息,但我无法安静地理解它:

统一版为2019.4.8f1 LTS,华为手机在Android 10上运行。

完整的崩溃日志是:

代码语言:javascript
复制
Caused by java.lang.Error
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
Version '2019.4.8f1 (60781d942082)', Build type 'Release', Scripting Backend 'mono', CPU 'armeabi-v7a' 
Build fingerprint: 'HUAWEI/LYA-L29/HWLYA:10:user/release-keys' Revision: '0' ABI: 'arm' 
Timestamp: 2020-08-13 14:12:37-0300 pid: 3571, tid: 3777, 
name: UnityMain >>> com.app.name <<< 
uid: 10315 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 
Cause: null pointer dereference r0 00000000 r1 00000000 r2 00000000 r3 00000000 r4 a965d490 r5 bd74a87c r6 80808080 r7 00000000 r8 be98f540 r9 00000000 r10 00000000 r11 b2f15f60 ip b2f4cc90 sp bd74a878 lr b2f1e859 pc 00000000 
managed backtrace: #00 (wrapper managed-to-native) 
UnityEngine.XR.ARCore.ARCoreSessionSubsystem/NativeApi:UnityARCore_session_update (UnityEngine.ScreenOrientation,UnityEngine.Vector2Int,intptr,UnityEngine.XR.ARSubsystems.Feature) #01 
UnityEngine.XR.ARCore.ARCoreSessionSubsystem/ARCoreProvider:Update (UnityEngine.XR.ARSubsystems.XRSessionUpdateParams,UnityEngine.XR.ARSubsystems.Configuration) <0xef> #02 
UnityEngine.XR.ARSubsystems.XRSessionSubsystem:Update (UnityEngine.XR.ARSubsystems.XRSessionUpdateParams) <0x1d3> #03 
UnityEngine.XR.ARFoundation.ARSession:Update () <0x157> #04 
(wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)

更新

我设法将崩溃缩小到ARSession脚本更新中的以下代码行:

代码语言:javascript
复制
        void Update()
        {
            if (subsystem?.running == true)
            {
                m_TrackingMode = subsystem.requestedTrackingMode.ToTrackingMode();
                if (subsystem.matchFrameRateEnabled)
                {
                    Application.targetFrameRate = subsystem.frameRate;
                    QualitySettings.vSyncCount = 0;
                }
                
                //subsystem.Update(new XRSessionUpdateParams
                //{
                //    screenOrientation = Screen.orientation,
                //    screenDimensions = new Vector2Int(Screen.width, Screen.height)
                //});

                switch (subsystem.trackingState)
                {
                    case TrackingState.None:
                    case TrackingState.Limited:
                        state = ARSessionState.SessionInitializing;
                        break;
                    case TrackingState.Tracking:
                        state = ARSessionState.SessionTracking;
                        break;
                }
            }
        }

有了这些评论行,应用程序启动,但相机不能工作。如果我取消评论,它就会崩溃。我知道问题就在那里,因为我放了一个:

代码语言:javascript
复制
UnityEngine.Handheld.Vibrate();

前后,电话只震动一次。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-14 17:24:37

我更新了问题的标题,因为问题是由更新Google Play Services for AR引起的。我按照这里的指示,手动下载了一个旧版本的Google服务,从而使我的应用程序能够正常工作。您可以跟踪我在ARCore Unity回购这里中打开的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63388152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档