mapbox / mapbox-unity-sdk

Mapbox Unity SDK - https://www.mapbox.com/unity/
Other
725 stars 210 forks source link

Android 64bit Error #1459

Open bugracoskun opened 5 years ago

bugracoskun commented 5 years ago

Note: If this is a bug or support ticket, please provide the following information:

stdout: Building libil2cpp.so with AndroidToolChain Output directory: D:\ARproject\ARticle3x64\Temp\StagingArea\assets\bin\Data\Native\armeabi-v7a Cache directory: D:\ARproject\ARticle3x64\Library\il2cpp_android_armeabi-v7a\il2cpp_cache ObjectFiles: 653 of which compiled: 0 Total compilation time: 8320 milliseconds. il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException: D:\android-ndk-r16b\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++ @"C:\Users\CBS Lab\AppData\Local\Temp\tmp8BEB.tmp" -o "D:\ARproject\ARticle3x64\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_3AF38CCB6A26644BD14EE1C6330F42F9\libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "D:\android-ndk-r16b\platforms\android-16\arch-arm" -gcc-toolchain "D:\android-ndk-r16b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64" -target armv7-none-linux-androideabi -Wl,--wrap,sigaction -L "D:\android-ndk-r16b\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi-v7a" -lgnustl_static -llog -rdynamic -fuse-ld=gold.exe

D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:23072: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:23072: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26922: error: undefined reference to 'StartWorldTrackingSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27011: error: undefined reference to 'PauseSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27107: error: undefined reference to 'CapturePixelData' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27053: error: undefined reference to 'GetVideoTextureHandles' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27097: error: undefined reference to 'SetCameraNearFar' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27117: error: undefined reference to 'SessionAddUserAnchor' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27132: error: undefined reference to 'SessionRemoveUserAnchor' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22121: error: undefined reference to 'GetBlendShapesInfo' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22121: error: undefined reference to 'GetBlendShapesInfo' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22846: error: undefined reference to 'IsARKitFaceTrackingConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22846: error: undefined reference to 'IsARKitFaceTrackingConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22954: error: undefined reference to 'IsARKitSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22954: error: undefined reference to 'IsARKitSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:23072: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27021: error: undefined reference to 'HitTest' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27034: error: undefined reference to 'GetLastHitTestResult' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26941: error: undefined reference to 'StartSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26790: error: undefined reference to 'unity_CreateNativeARSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26821: error: undefined reference to 'session_SetSessionCallbacks' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26843: error: undefined reference to 'session_SetPlaneAnchorCallbacks' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26865: error: undefined reference to 'session_SetUserAnchorCallbacks' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26887: error: undefined reference to 'session_SetFaceAnchorCallbacks' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26903: error: undefined reference to 'StartWorldTrackingSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26922: error: undefined reference to 'StartWorldTrackingSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26941: error: undefined reference to 'StartSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26960: error: undefined reference to 'StartSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26979: error: undefined reference to 'StartFaceTrackingSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26998: error: undefined reference to 'StartFaceTrackingSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27011: error: undefined reference to 'PauseSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27021: error: undefined reference to 'HitTest' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27034: error: undefined reference to 'GetLastHitTestResult' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27053: error: undefined reference to 'GetVideoTextureHandles' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27064: error: undefined reference to 'GetAmbientIntensity' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27075: error: undefined reference to 'GetTrackingQuality' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27086: error: undefined reference to 'GetARPointCloud' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27097: error: undefined reference to 'SetCameraNearFar' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27107: error: undefined reference to 'CapturePixelData' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27117: error: undefined reference to 'SessionAddUserAnchor' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27132: error: undefined reference to 'SessionRemoveUserAnchor' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26790: error: undefined reference to 'unity_CreateNativeARSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27086: error: undefined reference to 'GetARPointCloud' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26903: error: undefined reference to 'StartWorldTrackingSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26960: error: undefined reference to 'StartSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26998: error: undefined reference to 'StartFaceTrackingSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26979: error: undefined reference to 'StartFaceTrackingSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27064: error: undefined reference to 'GetAmbientIntensity' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27075: error: undefined reference to 'GetTrackingQuality' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22846: error: undefined reference to 'IsARKitFaceTrackingConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22954: error: undefined reference to 'IsARKitSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:23072: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported' clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)

at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(HashSet`1 objectFiles, CppToolChainContext toolChainContext) at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics) at il2cpp.Program.DoRun(String[] args) at il2cpp.Program.Run(String[] args) at il2cpp.Program.Main(String[] args) stderr:

Unhandled Exception: Unity.IL2CPP.Building.BuilderFailedException: D:\android-ndk-r16b\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++ @"C:\Users\CBS Lab\AppData\Local\Temp\tmp8BEB.tmp" -o "D:\ARproject\ARticle3x64\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_3AF38CCB6A26644BD14EE1C6330F42F9\libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "D:\android-ndk-r16b\platforms\android-16\arch-arm" -gcc-toolchain "D:\android-ndk-r16b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64" -target armv7-none-linux-androideabi -Wl,--wrap,sigaction -L "D:\android-ndk-r16b\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi-v7a" -lgnustl_static -llog -rdynamic -fuse-ld=gold.exe

D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:23072: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:23072: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26922: error: undefined reference to 'StartWorldTrackingSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27011: error: undefined reference to 'PauseSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27107: error: undefined reference to 'CapturePixelData' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27053: error: undefined reference to 'GetVideoTextureHandles' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27097: error: undefined reference to 'SetCameraNearFar' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27117: error: undefined reference to 'SessionAddUserAnchor' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27132: error: undefined reference to 'SessionRemoveUserAnchor' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22121: error: undefined reference to 'GetBlendShapesInfo' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22121: error: undefined reference to 'GetBlendShapesInfo' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22846: error: undefined reference to 'IsARKitFaceTrackingConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22846: error: undefined reference to 'IsARKitFaceTrackingConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22954: error: undefined reference to 'IsARKitSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:22954: error: undefined reference to 'IsARKitSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:23072: error: undefined reference to 'IsARKitWorldTrackingSessionConfigurationSupported' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27021: error: undefined reference to 'HitTest' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:27034: error: undefined reference to 'GetLastHitTestResult' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26941: error: undefined reference to 'StartSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26790: error: undefined reference to 'unity_CreateNativeARSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26821: error: undefined reference to 'session_SetSessionCallbacks' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26843: error: undefined reference to 'session_SetPlaneAnchorCallbacks' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26865: error: undefined reference to 'session_SetUserAnchorCallbacks' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26887: error: undefined reference to 'session_SetFaceAnchorCallbacks' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26903: error: undefined reference to 'StartWorldTrackingSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26922: error: undefined reference to 'StartWorldTrackingSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26941: error: undefined reference to 'StartSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26960: error: undefined reference to 'StartSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26979: error: undefined reference to 'StartFaceTrackingSession' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_7.cpp:26998: error: undefined reference to 'StartFaceTrackingSessionWithOptions' D:\ARproject\ARticle3x64\Temp\StagingArea\Il2Cpp\il2cppO



* Steps to recreate the bug if appropriate: 
* Links to your logs are also helpful: I tried with #1331 but i still getting error.

What am i doing wrong?
brnkhy commented 5 years ago

@bugracoskun What verion of Unity are you using? I remember having issues with IL2CPP in older versions of Unity with Turkish locale settings. So if you're not using 2018/2019, it might be an idea to upgrade.

Edit: Ouch, just saw it's 2018.3. Nevermind, sorry.

devedse commented 5 years ago

I'm running into exactly the same issues using Unity 2019.1.14f1.

I've been looking on the internet a bit regarding a solution and some people say you'd have to remove the Apple AR Kit libraries if you're compiling the library. However, shouldn't the Apple AR Kit library simply have compiler directives to exclude it?

One of the lines this fails on: https://github.com/mapbox/mapbox-unity-sdk/blob/dd595b407bc334ea953ae014324da6c0b7278338/sdkproject/Assets/UnityARKitPlugin/Plugins/iOS/UnityARKit/NativeInterface/UnityARSessionNativeInterface.cs#L253

It seems that the UnityARKit was added about 2 years back and according to some other posts it's mentioned that this was resolved.

https://forum.unity.com/threads/arkit-is-causing-the-android-il2cpp-build-to-break.507722/#post-4418299

However, on the gitlab from ARKit it states that this is now deprecated and ARFoundation should be used instead. Does this project already use ARFoundation?

https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/src

devedse commented 5 years ago

Doing some more investigation, it seems that this is even fixed in the latest deprecated version of ARKit:

image

https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/src/default/Assets/UnityARKitPlugin/Plugins/iOS/UnityARKit/NativeInterface/UnityARSessionNativeInterface.cs

So I would assume the intermediate fix would be is to upgrade to the latest deprecated version of UnityARKit and afterwards migrate to ARFoundation.

branko88 commented 5 years ago

Also experienced similar problems, even after removing all traces of ARKit from my project.

devedse commented 5 years ago

@branko88 , you shouldn't be having exactly the same errors then. Could you post your error log?

devedse commented 5 years ago

I've now upgraded the ARKit to the latest version you can download here: https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/downloads/

After doing this, there's a few places the code breaks inside the UnityARInterface third party component. These can be easily fixed by replacing:

using Utils;

with

using UnityEngine.XR.iOS.Utils;

everywhere it fails.

Also add the compiler directive #if !UNITY_EDITOR && UNITY_IOS around the whole ARKitInterface class to excluse it from compiling for Android && The editor.

...
namespace UnityARInterface
{
    #if !UNITY_EDITOR && UNITY_IOS
    public class ARKitInterface : ARInterface
...

This wil atleast fix this part of the build, see my next post for the rest.

devedse commented 5 years ago

After fixing this, there's more issues remaining:

C:\XGitAvavedse\TamaDroidGo\Temp\StagingArea\Il2Cpp\il2cppOutput/Assembly-CSharp11.cpp:22583: error: undefined reference to 'EnumerateVideoFormats'
C:\XGitAvavedse\TamaDroidGo\Temp\StagingArea\Il2Cpp\il2cppOutput/Assembly-CSharp11.cpp:22599: error: undefined reference to 'EnumerateFaceTrackingVideoFormats'
C:\XGitAvavedse\TamaDroidGo\Temp\StagingArea\Il2Cpp\il2cppOutput/Assembly-CSharp11.cpp:22583: error: undefined reference to 'EnumerateVideoFormats'
C:\XGitAvavedse\TamaDroidGo\Temp\StagingArea\Il2Cpp\il2cppOutput/Assembly-CSharp11.cpp:22599: error: undefined reference to 'EnumerateFaceTrackingVideoFormats'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)

Googling these results in a Resolved but not really bug report: https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/issues/25/android-il2cpp-build-fail

So basically change:

#if UNITY_EDITOR
private static void EnumerateVideoFormats(VideoFormatEnumerator videoFormatEnumerator) 
{
}
private static void EnumerateFaceTrackingVideoFormats(VideoFormatEnumerator videoFormatEnumerator) 
{
}
#else
[DllImport("__Internal")]
private static extern void EnumerateVideoFormats(VideoFormatEnumerator videoFormatEnumerator);
[DllImport("__Internal")]
private static extern void EnumerateFaceTrackingVideoFormats(VideoFormatEnumerator videoFormatEnumerator);
#endif

with

#if UNITY_EDITOR || !UNITY_IOS
private static void EnumerateVideoFormats(VideoFormatEnumerator videoFormatEnumerator) 
{
}
private static void EnumerateFaceTrackingVideoFormats(VideoFormatEnumerator videoFormatEnumerator) 
{
}
#else
[DllImport("__Internal")]
private static extern void EnumerateVideoFormats(VideoFormatEnumerator videoFormatEnumerator);
[DllImport("__Internal")]
private static extern void EnumerateFaceTrackingVideoFormats(VideoFormatEnumerator videoFormatEnumerator);
#endif

This hopefully fixes the build issues. (It did for me)

devedse commented 5 years ago

I also fixed this in a Pull Request in their repository: https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/pull-requests/58

Let's hope this get's approved quickly.

bugracoskun commented 5 years ago

Thank u for spend your time @devedse , I updated ARKitPlugin and I encountered the utils problem and I fixed as you said. Then, there are occured another problem. It looks like not a big problem. Can you look this? Adsız

Oh i added the code that

...
namespace UnityARInterface
{
    #if !UNITY_EDITOR && UNITY_IOS
    public class ARKitInterface : ARInterface
...

I can export the project in 64bit. But, my camera isn't work now. I am working on AR project. So, I need to fix this now.

devedse commented 5 years ago

To fix those errors change textureY to TextureY. Same for the other one.

bugracoskun commented 5 years ago

what about pointCloudData and GetARVideoTextureHandles. It didn't work for these.

devedse commented 5 years ago

Oh yeah, it was in a subclass of that. I'll see if I can just create a repo to fix this.

bugracoskun commented 5 years ago

Okay, thank you.

devedse commented 5 years ago

Here you go: https://github.com/devedse/mapbox-unity-sdk

I also created a pull request that should fix this in this repository: https://github.com/mapbox/mapbox-unity-sdk/pull/1462

bugracoskun commented 5 years ago

are u sure is it working? I am getting additional error. Also, it is in 32 bit with mono. 64bit has error too. Adsız

devedse commented 5 years ago

Did you try to reload the project? I don't really know what the errors are you're getting.

cheesemichael commented 5 years ago

hi, i could get the 64Bit to build but camera does not work now. if i build IL2CPP Arm7 and x86 it works fine. only for 64Bit the camera does ot work

cheesemichael commented 5 years ago

Did you try to reload the project? I don't really know what the errors are you're getting.

Hi,

was the problem solved yet ?

jbixon13 commented 5 years ago

@brnkhy are there any plans to address this? It seems like any workarounds are hit or miss and this is a pretty serious blocker to anyone looking to publish to Google Play

cheesemichael commented 5 years ago

@brnkhy are there any plans to address this? It seems like any workarounds are hit or miss and this is a pretty serious blocker to anyone looking to publish to Google Play

I agree. at this point, MAPBOX DOES NOT work on Android 64bit period

cheesemichael commented 5 years ago

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix Black Camera problem

Hi Everyone,

This solution works 100%.

1) DO NOT USE the default AR Controller script that is default in Mapbox (disable it) 2) Update the latest Unity ARcore SDK 3) At AR Root - use AR Core Session Script as the new AR Controller (comes with latest Unity ARCore SDK) 4) AR Camera - Use Track Pose Driver for tracking movement, AR Core Background Renderer for rendering camera view (comes with latest UnityARCore SDK) 5) Graphics API - OpenGLES2, OpenGLES3 both works 6) Make sure you have a 64 bit libarcore_camera_utility

lemme know if it works for you

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix build errors

And while waiting for Devedse's awesome ARKit update to fix the 64bit IL2CPP build errors, you can do this

Hi, while we wait for the AR Kit fix. you can do this

delete UnityARKitPlugin folder delete UnityARInterface/ARRemote folder 3)delete UnityARInterface/Examples/ARFocusSquare folder 4)delete UnityARInterface/Scripts/ARKitinterface.cs build again...

** to reverse these steps, import the mapbox-unity-sdk_v2.1.1 again

imanirajdoost commented 3 years ago

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix Black Camera problem

Hi Everyone,

This solution works 100%.

  1. DO NOT USE the default AR Controller script that is default in Mapbox (disable it)
  2. Update the latest Unity ARcore SDK
  3. At AR Root - use AR Core Session Script as the new AR Controller (comes with latest Unity ARCore SDK)
  4. AR Camera - Use Track Pose Driver for tracking movement, AR Core Background Renderer for rendering camera view (comes with latest UnityARCore SDK)
  5. Graphics API - OpenGLES2, OpenGLES3 both works
  6. Make sure you have a 64 bit libarcore_camera_utility

lemme know if it works for you

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix build errors

And while waiting for Devedse's awesome ARKit update to fix the 64bit IL2CPP build errors, you can do this

Hi, while we wait for the AR Kit fix. you can do this

delete UnityARKitPlugin folder delete UnityARInterface/ARRemote folder 3)delete UnityARInterface/Examples/ARFocusSquare folder 4)delete UnityARInterface/Scripts/ARKitinterface.cs build again...

** to reverse these steps, import the mapbox-unity-sdk_v2.1.1 again

This solution perfectly worked for me for Android, Thank you

imanirajdoost commented 3 years ago

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix Black Camera problem

Hi Everyone,

This solution works 100%.

  1. DO NOT USE the default AR Controller script that is default in Mapbox (disable it)
  2. Update the latest Unity ARcore SDK
  3. At AR Root - use AR Core Session Script as the new AR Controller (comes with latest Unity ARCore SDK)
  4. AR Camera - Use Track Pose Driver for tracking movement, AR Core Background Renderer for rendering camera view (comes with latest UnityARCore SDK)
  5. Graphics API - OpenGLES2, OpenGLES3 both works
  6. Make sure you have a 64 bit libarcore_camera_utility

lemme know if it works for you

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix build errors

And while waiting for Devedse's awesome ARKit update to fix the 64bit IL2CPP build errors, you can do this

Hi, while we wait for the AR Kit fix. you can do this

delete UnityARKitPlugin folder delete UnityARInterface/ARRemote folder 3)delete UnityARInterface/Examples/ARFocusSquare folder 4)delete UnityARInterface/Scripts/ARKitinterface.cs build again...

** to reverse these steps, import the mapbox-unity-sdk_v2.1.1 again

For the Camera problem, if the solution did not work for you, I suggest you take a look here

ruymaster commented 3 years ago

Hi, building errors were fixed by deleting ARKit scipts. But AR Camera is not yet working with 64bit IL2CPP.

iliasmour commented 2 years ago

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix Black Camera problem

Hi Everyone,

This solution works 100%.

  1. DO NOT USE the default AR Controller script that is default in Mapbox (disable it)
  2. Update the latest Unity ARcore SDK
  3. At AR Root - use AR Core Session Script as the new AR Controller (comes with latest Unity ARCore SDK)
  4. AR Camera - Use Track Pose Driver for tracking movement, AR Core Background Renderer for rendering camera view (comes with latest UnityARCore SDK)
  5. Graphics API - OpenGLES2, OpenGLES3 both works
  6. Make sure you have a 64 bit libarcore_camera_utility

lemme know if it works for you

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix build errors

And while waiting for Devedse's awesome ARKit update to fix the 64bit IL2CPP build errors, you can do this

Hi, while we wait for the AR Kit fix. you can do this

delete UnityARKitPlugin folder delete UnityARInterface/ARRemote folder 3)delete UnityARInterface/Examples/ARFocusSquare folder 4)delete UnityARInterface/Scripts/ARKitinterface.cs build again...

** to reverse these steps, import the mapbox-unity-sdk_v2.1.1 again

Have anyone figured it out? I follow the above steps

BUT the model that I use, is not anchored. It followes the camera movements like a UI button stuck in canvas.

Does anyone else have the same issue? Is there any solution on that?

iliasmour commented 2 years ago

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix Black Camera problem

Hi Everyone,

This solution works 100%.

  1. DO NOT USE the default AR Controller script that is default in Mapbox (disable it)
  2. Update the latest Unity ARcore SDK
  3. At AR Root - use AR Core Session Script as the new AR Controller (comes with latest Unity ARCore SDK)
  4. AR Camera - Use Track Pose Driver for tracking movement, AR Core Background Renderer for rendering camera view (comes with latest UnityARCore SDK)
  5. Graphics API - OpenGLES2, OpenGLES3 both works
  6. Make sure you have a 64 bit libarcore_camera_utility

lemme know if it works for you

**SOLUTION for Mapbox/ARCore/64Bit/IL2CPP) - to fix build errors

And while waiting for Devedse's awesome ARKit update to fix the 64bit IL2CPP build errors, you can do this

Hi, while we wait for the AR Kit fix. you can do this

delete UnityARKitPlugin folder delete UnityARInterface/ARRemote folder 3)delete UnityARInterface/Examples/ARFocusSquare folder 4)delete UnityARInterface/Scripts/ARKitinterface.cs build again...

** to reverse these steps, import the mapbox-unity-sdk_v2.1.1 again

Can you be more specific about some steps? 1."""AR Camera - Use Track Pose Driver for tracking movement""" There are many options that have to be defined (Device, Pose Source, Tracking Type etc.)

  1. At ARroot I have to use AR Camera Compass Alignment script which needs the ARcontroller script. So how can avoid this?
TimmyBest commented 1 year ago

So, do we have a solution for this? for iOS and Android, please... soon