Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Resolved AR game crashes on most androids when giving campera permission

Discussion in 'AR' started by bentleyshapland, Sep 18, 2021.

  1. bentleyshapland

    bentleyshapland

    Joined:
    Aug 5, 2021
    Posts:
    1
    The game works on some android but crashes on our Samsung s20 ultra 5g. It works on the s10.
    The game worked on the s20 but started having this problem just under a month ago with no changes to the code base. Once you give the game camera access it crashes.

    The S20 is running android 11.

    Attached is the Log file of the S20.
    Please let me know if more information is needed and if so what info.
    Thanks in advance.
     

    Attached Files:

    J_Kost likes this.
  2. J_Kost

    J_Kost

    Joined:
    Feb 16, 2021
    Posts:
    31
    A relevant bit of the log is this here:
    Code (JavaScript):
    1. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: FATAL EXCEPTION: UnityMain
    2. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: Process: com.DefaultCompany.FathomlandAR, PID: 29813
    3. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: java.lang.Error: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    4. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: Version '2020.3.12f1 (b3b2c6512326)', Build type 'Release', Scripting Backend 'mono', CPU 'armeabi-v7a'
    5. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: Build fingerprint: 'samsung/z3qcsw/z3q:11/RP1A.200720.012/G988WVLU2DUG1:user/release-keys'
    6. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: Revision: '15'
    7. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: ABI: 'arm'
    8. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: Timestamp: 2021-09-14 12:15:00-0700
    9. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: pid: 29813, tid: 30341, name: UnityMain  >>> com.DefaultCompany.FathomlandAR <<<
    10. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: uid: 10299
    11. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
    12. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: Cause: null pointer dereference
    13. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     r0  00000000  r1  0000000b  r2  00000000  r3  00000001
    14. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     r4  9431d5d0  r5  b81fb754  r6  80808080  r7  00000000
    15. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     r8  e314d8b0  r9  00000000  r10 00000000  r11 a9323bf0
    16. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     ip  a935abdc  sp  b81fb750  lr  a932c321  pc  00000000
    17. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:
    18. 09-14 12:15:00.266 29813 30341 E AndroidRuntime: managed backtrace:
    19. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:       #00 (wrapper managed-to-native) UnityEngine.XR.ARCore.ARCoreSessionSubsystem/NativeApi:UnityARCore_session_update (UnityEngine.ScreenOrientation,UnityEngine.Vector2Int,intptr,UnityEngine.XR.ARSubsystems.Feature)
    20. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:       #01 UnityEngine.XR.ARCore.ARCoreSessionSubsystem/ARCoreProvider:Update (UnityEngine.XR.ARSubsystems.XRSessionUpdateParams,UnityEngine.XR.ARSubsystems.Configuration) <0xef>
    21. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:       #02 UnityEngine.XR.ARSubsystems.XRSessionSubsystem:Update (UnityEngine.XR.ARSubsystems.XRSessionUpdateParams) <0x1d3>
    22. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:       #03 UnityEngine.XR.ARFoundation.ARSession:Update () <0x14f>
    23. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:       #04 (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
    24. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:
    25. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     at UnityEngine.XR.ARCore.ARCoreSessionSubsystem.NativeApi.UnityARCore_session_update (UnityEngine.ScreenOrientation,UnityEngine.Vector2Int,intptr,UnityEngine.XR.ARSubsystems.Feature)(Native Method)
    26. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     at UnityEngine.XR.ARCore.ARCoreSessionSubsystem.ARCoreProvider.Update (UnityEngine.XR.ARSubsystems.XRSessionUpdateParams,UnityEngine.XR.ARSubsystems.Configuration)(0xef:239)
    27. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     at UnityEngine.XR.ARSubsystems.XRSessionSubsystem.Update (UnityEngine.XR.ARSubsystems.XRSessionUpdateParams)(0x1d3:467)
    28. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     at UnityEngine.XR.ARFoundation.ARSession.Update ()(0x14f:335)
    29. 09-14 12:15:00.266 29813 30341 E AndroidRuntime:     at System.Object.runtime_invoke_void__this__ (object,intptr,intptr,intptr)(Native Method)
    The first thing I notice is that you are running a 32 bit ARM build.
    AFAIK ARCore only supports 64bit officially. As a first step, you will probably have to switch the scripting backend from mono to IL2CPP and enable 64 bit builds in your player settings for Android.

    At this point I would be extremely thankful for some advice from @tdmowrer or @todds_unity though. I apologize for nagging by tagging you here, but I am facing a related issue which has been a nightmare to troubleshoot. It is a major blocker for my master's thesis.

    First, I'd like to bring to your attention that this is the third forum post regarding segmentation faults in ARCore on Samsung handsets in the space of a few days, see: https://forum.unity.com/threads/arfoundation-application-crashes-randomly.1170233/ and my (now outdated) post here: https://forum.unity.com/threads/segfault-in-xrcpuimage-convert.1167164/. It's probably a conicidence, but it might be worth keeping an eye on.

    Now to my issue: Any code that copies the data originating from XRCpuImage.Convert() in my project seems to tread on a potential landmine, causing a segmentation fault like the one OP is facing. These faults are very common and crash my app in most cases after only a few seconds. They are, however, intermittent and might even not happen at all every once in a while. I am unable to discern any pattern in the crashes so far, despite having had over a hundred since I started troubleshooting. So I assume the faults are likely, but random.

    The segmentation faults occur in several functions in plugins, e.g. OpenCV4Unity's MatUtils.copyToMat<T>(). It also used to happen in this (seemingly perfectly safe?) function here:

    Code (CSharp):
    1. public static Texture2D CloneTexture2D(Texture2D source)
    2. {
    3.     Texture2D copyTexture = new Texture2D(source.width, source.height, source.graphicsFormat, 0);
    4.     Graphics.CopyTexture(source, copyTexture);
    5.     return copyTexture;
    6. }
    But ONLY when trying to clone a Texture2D created like this:

    Code (CSharp):
    1. unsafe bool EmitFullCPUImage(XRCpuImage image, int frameNumber)
    2. {
    3.     Texture2D texture = null;
    4.     TextureFormat format = TextureFormat.RGBA32;
    5.  
    6.     XRCpuImage.ConversionParams conversionParams = new XRCpuImage.ConversionParams(
    7.         image, format, XRCpuImage.Transformation.MirrorX);
    8.     conversionParams.outputDimensions = new Vector2Int(image.width, image.height);
    9.  
    10.     int size = image.GetConvertedDataSize(conversionParams);
    11.     using (NativeArray<byte> buffer = new NativeArray<byte>(size, Allocator.Temp))
    12.     {
    13.         if (buffer.IsCreated && (buffer.Length == size))
    14.         {
    15.             //Debug.Log("CONVOP18#93: XRCpuImage.Convert() attempted in XRCamera.EmitFullCPUImageSync() with w=" + image.width + "; h=" + image.height + "; size=" + size + "; actual buffer length=" + buffer.Length + " - Frame: " + frameNumber);
    16.             image.Convert(conversionParams, new IntPtr(buffer.GetUnsafePtr()), buffer.Length);
    17.             texture = new Texture2D(
    18.                 conversionParams.outputDimensions.x,
    19.                 conversionParams.outputDimensions.y,
    20.                 conversionParams.outputFormat,
    21.                 false);
    22.  
    23.             texture.LoadRawTextureData(buffer);
    24.             texture.Apply();
    25.  
    26.             //emit frame
    27.             OnNewCPUtexture?.Invoke(texture, frameNumber);
    28.             return true;
    29.         }
    30.         else
    31.         {
    32.             Debug.LogWarning("CONVOP18#93: NativeArray buffer creation failed - Frame: " + frameNumber);
    33.             return false;
    34.         }
    35.     }
    36. }
    Previously, I used to Convert() twice from each new XRCpuImage – both times with different resolutions – and the XRCpuImage in question was potentially kept around for a while. To eliminate these two potential error causes, I simplified the code in question as shown in the following. Note that this did NOT fix the issue. It only changed the function in which the segfaults occur.

    This is how I handle the XRCpuImages now:

    Code (CSharp):
    1. private void SampleFrame()
    2. {
    3.     Frame frame = new Frame(); //not relevant here
    4.  
    5.     XRCameraIntrinsics intrinsics;
    6.     if (!this.cameraManager.TryGetIntrinsics(out intrinsics))
    7.     {
    8.         frame.Dispose();
    9.         return;
    10.     }
    11.  
    12.     XRCpuImage XRimage = new XRCpuImage();
    13.  
    14.     if (!this.cameraManager.TryAcquireLatestCpuImage(out XRimage))
    15.     {
    16.         XRimage.Dispose();
    17.         frame.Dispose();
    18.         return;
    19.     }
    20.  
    21.     frameNumber += 1;
    22.  
    23.     try
    24.     {
    25.         int width = XRimage.width;
    26.         int height = XRimage.height;
    27.         byte[] rawImgData = ReadXRCPUimage(XRimage, TextureFormat.RGBA32);
    28.  
    29.         //done with the XR image, get rid of it ASAP
    30.         XRimage.Dispose();
    31.  
    32.         //add missing info to frame
    33.         Vector2Int targetDims = GetTrackingImageSize(width, height);
    34.         frame.intrinsicData = ToVLIntrinsic(intrinsics, targetDims);
    35.         frame.extrinsicData = GetCurrentExtrinsicData();
    36.  
    37.         //Pack raw image data and everything needed to convert it to a VL image for the tracking manager
    38.         CPUframeData data = new CPUframeData(
    39.             rawImgData,
    40.             width,
    41.             height,
    42.             targetDims.x,
    43.             targetDims.y,
    44.             TextureFormat.RGBA32,
    45.             frameNumber
    46.             );
    47.         //send to coordinator -> image added there, then pushed to trackingmanager
    48.         OnNewCPUimageData?.Invoke(data, frame);
    49.     }
    50.     catch (InvalidOperationException e)
    51.     {
    52.         frame.Dispose();
    53.         XRimage.Dispose();
    54.         if (e.Source == "ARFoundationRemote.Editor")
    55.         {
    56.             Debug.LogWarning(e);
    57.         }
    58.         else
    59.         {
    60.             //unexpected failure. throw so I notice this.
    61.             throw e;
    62.         }
    63.         return;
    64.     }
    65. }
    Where the actual readout is done here:

    Code (CSharp):
    1. unsafe byte[] ReadXRCPUimage(XRCpuImage image, TextureFormat targetTextureFormat)
    2. {
    3.     XRCpuImage.ConversionParams conversionParams = new XRCpuImage.ConversionParams(
    4.         image, targetTextureFormat, XRCpuImage.Transformation.MirrorX);
    5.     conversionParams.outputDimensions = new Vector2Int(image.width, image.height);
    6.  
    7.     int size = image.GetConvertedDataSize(conversionParams);
    8.     byte[] managedBuffer = new byte[size];
    9.     using (NativeArray<byte> tmpBuffer = new NativeArray<byte>(size, Allocator.Temp))
    10.     {
    11.         image.Convert(conversionParams, new IntPtr(tmpBuffer.GetUnsafePtr()), tmpBuffer.Length);
    12.         tmpBuffer.CopyTo(managedBuffer);
    13.     } //native array gone
    14.     return managedBuffer;
    15. }
    Segmentation faults now occur here (the handler for my event OnNewCPUimageData) in lines 7,11 and 13 – again, specifically when the data originating from the XRCpuImage is copied somewhere else:

    Code (CSharp):
    1. private void ProcessNewCPUFrame(CPUframeData data, Frame vlFrame)
    2. {
    3.     int frameNumber = data.FrameNumber;
    4.     if (data.Format == TextureFormat.RGBA32)
    5.     {
    6.         //convert byte[] to mat & downscale to target size for tracking
    7.         Mat tmp = ImageUtils.ResizeMat(ImageUtils.ByteArray2Mat_RGBA32(data.ManagedPixelBuffer, data.Height, data.Width), data.VLtargetWidth, data.VLtargetHeight);
    8.         //flip vertically
    9.         ImageUtils.FlipTopBottom(ref tmp, ref tmp);
    10.         //convert back to byte[]
    11.         byte[] rawImgForVL = ImageUtils.Mat2ByteArray_RGBA32(tmp);
    12.         //convert the raw byte array to a VL image & add it to the Frame befroe passing it to the tracker
    13.         vlFrame.image = Visometry.VisionLib.SDK.Core.API.Native.Image.CreateFromBuffer(rawImgForVL, data.VLtargetWidth, data.VLtargetHeight);
    14.         syncTrackingManager.Push(vlFrame, frameNumber);
    15.  
    16.         //create full frame Texture2D & store in buffer
    17.         Texture2D fullFrameTexture = new Texture2D(data.Width, data.Height, data.Format, false);
    18.         fullFrameTexture.LoadRawTextureData(data.ManagedPixelBuffer);
    19.         fullFrameTexture.Apply(); //copy from CPU to GPU
    20.         fullFrames.AddFrame(fullFrameTexture, frameNumber);
    21.     }
    22.     else
    23.     {
    24.         Debug.LogWarning("Data has wrong Texture format. Ensure you are providing data in TextureFormat RGBA32. Frame " + frameNumber + " skipped.");
    25.     }
    26. }
    I have attached the helpers used in lines 7 & 11 for further reference, but they end in MatUtils.copyToMat<T>() and MatUtils.copyFromMat<T>(), respectively, which are imported from a DLL
    I have also attached a tombstone from one of my latest crashes for reference.

    I am desperate for any insight into how I might be able to get rid of this bug.
     

    Attached Files:

    Last edited: Sep 20, 2021
  3. gsentlin

    gsentlin

    Joined:
    Jan 30, 2015
    Posts:
    2
    I'm working with Ben and have a few more details. This code used to work on the S20 in late August, but doesn't in early September. Perhaps there was an update, but I can't crack the combo of versions. I bought another phone, a Google Pixel 5 running Android 11, then updated to Android 12, and get the same result for both OS versions. Our game works on a Galaxy S10 running Android 11, it works on a Pixel 4 running Android 12, works on a Pixel 2XL running Android 10, all using the Mono script.

    Thank you J_Kost for following up. I'm not sure if it's related. I also found the IL2CPP option and built for ARM64 bit and ARM7, but then I get this error compiling:

    Code (CSharp):
    1. Exception: Unity.IL2CPP.Building.BuilderFailedException: C:\Program Files\Unity\Hub\Editor\2020.3.18f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++ @"C:\Users\gsentlin\AppData\Local\Temp\tmp597B.tmp" -o "C:\Projects\Fathomland-AR\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_E4AFF93D42E6A2697063A8A0AA361769\libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id -stdlib=libc++ -static-libstdc++ -target armv7-linux-androideabi19 -Wl,--wrap,sigaction "C:\Program Files\Unity\Hub\Editor\2020.3.18f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Development\StaticLibs\armeabi-v7a\baselib.a" -llog -rdynamic -fuse-ld=gold.exe
    2.  
    3. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:23068: error: undefined reference to 'GetBlendShapesInfo'
    4. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:23068: error: undefined reference to 'GetBlendShapesInfo'
    5. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:23997: error: undefined reference to 'IsARKitFaceTrackingConfigurationSupported'
    6. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:23997: error: undefined reference to 'IsARKitFaceTrackingConfigurationSupported'
    7. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:24125: error: undefined reference to 'IsARKitSessionConfigurationSupported'
    8. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:24125: error: undefined reference to 'IsARKitSessionConfigurationSupported'
    9. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:24264: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported'
    10. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:24264: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported'
    11. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:23997: error: undefined reference to 'IsARKitFaceTrackingConfigurationSupported'
    12. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:24125: error: undefined reference to 'IsARKitSessionConfigurationSupported'
    13. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp.cpp:24264: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported'
    14. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36760: error: undefined reference to 'SetCameraNearFar'
    15. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36690: error: undefined reference to 'HitTest'
    16. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36702: error: undefined reference to 'GetLastHitTestResult'
    17. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36681: error: undefined reference to 'PauseSession'
    18. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36471: error: undefined reference to 'unity_CreateNativeARSession'
    19. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36501: error: undefined reference to 'session_SetSessionCallbacks'
    20. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36522: error: undefined reference to 'session_SetPlaneAnchorCallbacks'
    21. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36543: error: undefined reference to 'session_SetUserAnchorCallbacks'
    22. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36564: error: undefined reference to 'session_SetFaceAnchorCallbacks'
    23. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36579: error: undefined reference to 'StartWorldTrackingSession'
    24. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36597: error: undefined reference to 'StartWorldTrackingSessionWithOptions'
    25. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36615: error: undefined reference to 'StartSession'
    26. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36633: error: undefined reference to 'StartSessionWithOptions'
    27. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36651: error: undefined reference to 'StartFaceTrackingSession'
    28. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36669: error: undefined reference to 'StartFaceTrackingSessionWithOptions'
    29. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36681: error: undefined reference to 'PauseSession'
    30. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36690: error: undefined reference to 'HitTest'
    31. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36702: error: undefined reference to 'GetLastHitTestResult'
    32. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36720: error: undefined reference to 'GetVideoTextureHandles'
    33. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36730: error: undefined reference to 'GetAmbientIntensity'
    34. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36740: error: undefined reference to 'GetTrackingQuality'
    35. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36750: error: undefined reference to 'GetARPointCloud'
    36. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36760: error: undefined reference to 'SetCameraNearFar'
    37. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36769: error: undefined reference to 'CapturePixelData'
    38. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36778: error: undefined reference to 'SessionAddUserAnchor'
    39. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36792: error: undefined reference to 'SessionRemoveUserAnchor'
    40. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36471: error: undefined reference to 'unity_CreateNativeARSession'
    41. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36769: error: undefined reference to 'CapturePixelData'
    42. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36750: error: undefined reference to 'GetARPointCloud'
    43. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36720: error: undefined reference to 'GetVideoTextureHandles'
    44. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36730: error: undefined reference to 'GetAmbientIntensity'
    45. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36740: error: undefined reference to 'GetTrackingQuality'
    46. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36778: error: undefined reference to 'SessionAddUserAnchor'
    47. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\armeabi-v7a\il2cppOutput/Assembly-CSharp7.cpp:36792: error: undefined reference to 'SessionRemoveUserAnchor'
    48. clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
    49.  
    50.  
    51.    at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(HashSet`1 objectFiles, CppToolChainContext toolChainContext)
    52.    at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
    53.    at il2cpp.Compilation.CompilationDriver.Run(RuntimePlatform platform, BuildingOptions buildingOptions, ReadOnlyCollection`1 matchedAssemblyMethodSourceFiles)
    54.    at il2cpp.Program.DoRun(String[] args, RuntimePlatform platform, BuildingOptions buildingOptions, Boolean throwExceptions)
    55. UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at <5ad584e208e14caaa9e6b2e6027e9204>:0)
    56. UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action`1[T] setupStartInfo) (at <5ad584e208e14caaa9e6b2e6027e9204>:0)
    57. UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List`1[T] arguments, System.Action`1[T] setupStartInfo) (at <5ad584e208e14caaa9e6b2e6027e9204>:0)
    58. UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (UnityEditor.Il2Cpp.Il2CppBuildPipelineData data) (at <5ad584e208e14caaa9e6b2e6027e9204>:0)
    59. UnityEditorInternal.IL2CPPBuilder.Run () (at <5ad584e208e14caaa9e6b2e6027e9204>:0)
    60. UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, UnityEditorInternal.IIl2CppPlatformProvider platformProvider, System.Action`1[T] modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at <5ad584e208e14caaa9e6b2e6027e9204>:0)
    61. UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <c8b3b39837d14a59b516963b78bf9032>:0)
    62. UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <c8b3b39837d14a59b516963b78bf9032>:0)
    63. UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (UnityEditor.BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <c8b3b39837d14a59b516963b78bf9032>:0)
    64. UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <c8b3b39837d14a59b516963b78bf9032>:0)
    65. UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <5ad584e208e14caaa9e6b2e6027e9204>:0)
    66. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
    67.  
    which seems to be related to the ARM7 build, so I deselect ARM7 and build for ARM64 only, but then it seems that I'm missing libraries or something, or maybe the correct library? If someone can tell me a switch to flip to make this work, you'd really be a hero.

    Code (CSharp):
    1. Exception: Unity.IL2CPP.Building.BuilderFailedException: C:\Program Files\Unity\Hub\Editor\2020.3.18f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++ @"C:\Users\gsentlin\AppData\Local\Temp\tmpE293.tmp" -o "C:\Projects\Fathomland-AR\Library\il2cpp_android_arm64-v8a\il2cpp_cache\linkresult_7BAFA21F7F0C453B2B0532B88D1AE81E\libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id -stdlib=libc++ -static-libstdc++ -target aarch64-linux-android21 -Wl,--wrap,sigaction "C:\Program Files\Unity\Hub\Editor\2020.3.18f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Development\StaticLibs\arm64-v8a\baselib.a" -llog -rdynamic -fuse-ld=bfd.exe
    2.  
    3. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/B991F8B61021AB1291C34910A1D27419.o: In function `ARFaceAnchor_GetBlendShapesInfo_mCCA83F5349568014BDC0A7146A5CB9D146D7607A':
    4. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:23068: undefined reference to `GetBlendShapesInfo'
    5. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:23068: undefined reference to `GetBlendShapesInfo'
    6. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/B991F8B61021AB1291C34910A1D27419.o: In function `ARKitFaceTrackingConfiguration_IsARKitFaceTrackingConfigurationSupported_m4CD21C9A48F1EB14CC638D6C8EDD80433343530C':
    7. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:23997: undefined reference to `IsARKitFaceTrackingConfigurationSupported'
    8. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:23997: undefined reference to `IsARKitFaceTrackingConfigurationSupported'
    9. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/B991F8B61021AB1291C34910A1D27419.o: In function `ARKitSessionConfiguration_IsARKitSessionConfigurationSupported_mCED0220D737036CBB5AC33676923DA7EB17518E3':
    10. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:24125: undefined reference to `IsARKitSessionConfigurationSupported'
    11. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:24125: undefined reference to `IsARKitSessionConfigurationSupported'
    12. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/B991F8B61021AB1291C34910A1D27419.o: In function `ARKitWorldTrackingSessionConfiguration_IsARKitWorldTrackingSessionConfigurationSupported_mF6D9348003601B17F33D666CE0E5CD8CDC53FF1F':
    13. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:24264: undefined reference to `IsARKitWorldTrackingSessionConfigurationSupported'
    14. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:24264: undefined reference to `IsARKitWorldTrackingSessionConfigurationSupported'
    15. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/B991F8B61021AB1291C34910A1D27419.o: In function `ARKitFaceTrackingConfiguration_IsARKitFaceTrackingConfigurationSupported_m4CD21C9A48F1EB14CC638D6C8EDD80433343530C':
    16. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:23997: undefined reference to `IsARKitFaceTrackingConfigurationSupported'
    17. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/B991F8B61021AB1291C34910A1D27419.o: In function `ARKitSessionConfiguration_IsARKitSessionConfigurationSupported_mCED0220D737036CBB5AC33676923DA7EB17518E3':
    18. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:24125: undefined reference to `IsARKitSessionConfigurationSupported'
    19. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/B991F8B61021AB1291C34910A1D27419.o: In function `ARKitWorldTrackingSessionConfiguration_IsARKitWorldTrackingSessionConfigurationSupported_mF6D9348003601B17F33D666CE0E5CD8CDC53FF1F':
    20. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp.cpp:24264: undefined reference to `IsARKitWorldTrackingSessionConfigurationSupported'
    21. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_SetCameraNearFar_m2990DF68AEFA00AAED45BB001636DEDCE1F0FA25':
    22. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36760: undefined reference to `SetCameraNearFar'
    23. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_HitTest_m1AB8A474C85ED16E15B70E92EA2B5682C3BC70E5':
    24. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36690: undefined reference to `HitTest'
    25. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetLastHitTestResult_m5AC8EBE40A1515BC45211C4D75818C9E5CF8A958':
    26. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36702: undefined reference to `GetLastHitTestResult'
    27. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_PauseSession_m78327397936C95284C191FE28E24398CEADF2337':
    28. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36681: undefined reference to `PauseSession'
    29. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_unity_CreateNativeARSession_mAF7E26B40DF841AE49103FE237A36C179865D061':
    30. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36471: undefined reference to `unity_CreateNativeARSession'
    31. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_session_SetSessionCallbacks_m053E9E031751F27B82CF84F17C0B00DF0C260B6E':
    32. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36501: undefined reference to `session_SetSessionCallbacks'
    33. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_session_SetPlaneAnchorCallbacks_m005B74479A2ED0FB6FA7747672310DA6909023FA':
    34. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36522: undefined reference to `session_SetPlaneAnchorCallbacks'
    35. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_session_SetUserAnchorCallbacks_mCA177105AEA9E8FC1C5D73C43FA4C6A0F3E5412C':
    36. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36543: undefined reference to `session_SetUserAnchorCallbacks'
    37. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_session_SetFaceAnchorCallbacks_m131F35518F75FD30E0F568A2AEEE72C89F31A598':
    38. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36564: undefined reference to `session_SetFaceAnchorCallbacks'
    39. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_StartWorldTrackingSession_mB731B4E5E43765167357A050AE9D0626AF7DF07F':
    40. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36579: undefined reference to `StartWorldTrackingSession'
    41. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_StartWorldTrackingSessionWithOptions_m1BD690FCC4649D25A34139982359CCE04F5D2D92':
    42. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36597: undefined reference to `StartWorldTrackingSessionWithOptions'
    43. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_StartSession_mCFC08C093EB635E785CF85BD9020D404EA72D55D':
    44. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36615: undefined reference to `StartSession'
    45. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_StartSessionWithOptions_mFDC0DF1BEC04967AA42FCEBA88A52183BFE5F382':
    46. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36633: undefined reference to `StartSessionWithOptions'
    47. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_StartFaceTrackingSession_m718643030F1B20EB830A6134D927D0F1CC25B14D':
    48. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36651: undefined reference to `StartFaceTrackingSession'
    49. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_StartFaceTrackingSessionWithOptions_mC12949ED0DDD0AFD8F5E7669174DDE2023C23C08':
    50. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36669: undefined reference to `StartFaceTrackingSessionWithOptions'
    51. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_PauseSession_m78327397936C95284C191FE28E24398CEADF2337':
    52. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36681: undefined reference to `PauseSession'
    53. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_HitTest_m1AB8A474C85ED16E15B70E92EA2B5682C3BC70E5':
    54. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36690: undefined reference to `HitTest'
    55. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetLastHitTestResult_m5AC8EBE40A1515BC45211C4D75818C9E5CF8A958':
    56. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36702: undefined reference to `GetLastHitTestResult'
    57. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetVideoTextureHandles_m7E417AFA9C2BFBAA7F488D04BB3C523413981E7C':
    58. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36720: undefined reference to `GetVideoTextureHandles'
    59. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetAmbientIntensity_mC787537ED989AB68B416192A6656398401B18E1B':
    60. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36730: undefined reference to `GetAmbientIntensity'
    61. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetTrackingQuality_m649F5C374AA10F8113A1E325A51329C371A614EF':
    62. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36740: undefined reference to `GetTrackingQuality'
    63. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetARPointCloud_mAB6E24573012D28216F9AAEC9C9D770DAA35A56E':
    64. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36750: undefined reference to `GetARPointCloud'
    65. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_SetCameraNearFar_m2990DF68AEFA00AAED45BB001636DEDCE1F0FA25':
    66. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36760: undefined reference to `SetCameraNearFar'
    67. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_CapturePixelData_m8444389DAFFE4D257E62D2492BBB1D5B3E59633C':
    68. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36769: undefined reference to `CapturePixelData'
    69. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_SessionAddUserAnchor_mD6EA043BFAE97CD21CF3610BFEF7A5210419C1E8':
    70. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36778: undefined reference to `SessionAddUserAnchor'
    71. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_SessionRemoveUserAnchor_m329D2D5793DE6F18ECF2CBD88A16C27457916B29':
    72. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36792: undefined reference to `SessionRemoveUserAnchor'
    73. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_unity_CreateNativeARSession_mAF7E26B40DF841AE49103FE237A36C179865D061':
    74. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36471: undefined reference to `unity_CreateNativeARSession'
    75. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_CapturePixelData_m8444389DAFFE4D257E62D2492BBB1D5B3E59633C':
    76. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36769: undefined reference to `CapturePixelData'
    77. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetARPointCloud_mAB6E24573012D28216F9AAEC9C9D770DAA35A56E':
    78. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36750: undefined reference to `GetARPointCloud'
    79. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetVideoTextureHandles_m7E417AFA9C2BFBAA7F488D04BB3C523413981E7C':
    80. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36720: undefined reference to `GetVideoTextureHandles'
    81. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetAmbientIntensity_mC787537ED989AB68B416192A6656398401B18E1B':
    82. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36730: undefined reference to `GetAmbientIntensity'
    83. C:/Projects/Fathomland-AR/Library/il2cpp_android_arm64-v8a/il2cpp_cache/E1D058C3AB60050C11AECD5653CC48D2.o: In function `UnityARSessionNativeInterface_GetTrackingQuality_m649F5C374AA10F8113A1E325A51329C371A614EF':
    84. C:\Projects\Fathomland-AR\Library\Il2cppBuildCache\Android\arm64-v8a\il2cppOutput/Assembly-CSharp7.cpp:36740: undefined reference<message truncated>
    We can't be only one experiencing this. I notice 2/5 AR games I downloaded onto this Pixel5 also crash when they get to ARCore: Knightfall AR and JPL Spacecraft AR. I just checked and both also fail on the S20 and both work on the Pixel2XL, which btw appears to be a 64bit processor. I updated the Pixel 2XL from Android 8 to 10 to 11 and our game and ARCore works on every version of Android on this phone. So it is hardware related.
     
  4. gsentlin

    gsentlin

    Joined:
    Jan 30, 2015
    Posts:
    2
    Good News! It's fixed. Your tip, J_Kost, about IL2CPP sent me down the right path. I found this https://stackoverflow.com/questions...ut-fails-in-il2cpp-due-to-undefined-reference
    and did a replace of all instances of [DllImport("__Internal")] with [DllImport("Assembly-CSharp.dll")] which allowed me to build with IL2CPP and ARM64. ARCore then works on the Pixel5 and S20. (Strangely I can't copy to the S20 through unity, but dragged the APK to myfiles and installed from there. )
    Hats off!
     
  5. J_Kost

    J_Kost

    Joined:
    Feb 16, 2021
    Posts:
    31
    Cheers, glad it worked!
     
unityunity