I have an application built in Unity 2017.4.15f1 (now migrated to 2018.3.0f2) using Vuforia version 7 (now migrated to 8.1) that I’m attempting to build with arm64 such that I can publish it to Google Play. I was able to build the application with arm64 on Unity 2017, but the camera was just a black screen when testing. I looked around and found out that 64-bit hadn’t been properly supported until Vuforia v8 in Unity 2018.3. After migrating my project and attempting to build with arm64, I was greeted by this error message:
~~~csharp
*Win32Exception: ApplicationName=‘C:\Program Files\2018.3.0f2\Editor\Data\il2cpp\build/UnityLinker.exe’, CommandLine=‘-out=“C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed\tempStrip” -x=“C:\Program Files\2018.3.0f2\Editor\Data\PlaybackEngines\AndroidPlayer\Whitelists\Core.xml” -x “C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed..\platform_native_link.xml” -x “C:\Users\pmerritt\AppData\Local\Temp\1\tmp58309e30.tmp” -x “C:\Users\pmerritt\AppData\Local\Temp\1\tmp5bb9a1b4.tmp” -d “C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed” --include-unity-root-assembly=“C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed\Assembly-CSharp.dll” --include-unity-root-assembly=“C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed\Pcx.Editor.dll” --include-unity-root-assembly=“C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed\VuforiaScripts.dll” --include-unity-root-assembly=“C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed\Pcx.dll” --include-unity-root-assembly=“C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.UI.dll” --include-unity-root-assembly=“C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed\Vuforia.UnityExtensions.dll” --include-unity-root-assembly=“C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed\TextMeshPro-2017.3-Runtime.dll” --dotnetruntime=il2cpp --dotnetprofile=legacyunity --use-editor-options --include-directory=C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed --rule-set=Conservative’, CurrentDirectory=‘C:\Users\pmerritt\Documents\VuforiaMobileAppProject\Temp\StagingArea\assets\bin\Data\Managed’
System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start ()
(wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:44)
UnityEditor.Utils.Program.Start () (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:28)
UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:106)
UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action`1 setupStartInfo) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
UnityEditorInternal.AssemblyStripper.RunAssemblyLinker (IEnumerable`1 args, System.String& out, System.String& err, System.String linkerPath, System.String workingDirectory) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:192)
UnityEditorInternal.AssemblyStripper.StripAssembliesTo (System.String assemblies, System.String searchDirs, System.String outputFolder, System.String workingDirectory, System.String& output, System.String& error, System.String linkerPath, IIl2CppPlatformProvider platformProvider, IEnumerable`1 additionalBlacklist, BuildTargetGroup buildTargetGroup, ManagedStrippingLevel managedStrippingLevel) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:124)
UnityEditorInternal.AssemblyStripper.RunAssemblyStripper (IEnumerable assemblies, System.String managedAssemblyFolderPath, System.String assembliesToStrip, System.String searchDirs, System.String monoLinkerPath, IIl2CppPlatformProvider platformProvider, UnityEditor.RuntimeClassRegistry rcr, ManagedStrippingLevel managedStrippingLevel) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:323)
UnityEditorInternal.AssemblyStripper.StripAssemblies (System.String managedAssemblyFolderPath, IIl2CppPlatformProvider platformProvider, UnityEditor.RuntimeClassRegistry rcr, ManagedStrippingLevel managedStrippingLevel) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:216)
UnityEditorInternal.IL2CPPBuilder.Run () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:203)
UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action`1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:35)
UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties)
UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTargetGroup targetGroup, BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:286)
UnityEngine.GUIUtility:processEvent(Int32, IntPtr)
__~~~*__
I’ve tried multiple later versions of Unity and Vuforia, reinstalling Android SDK and NDKs, changing my Api compatibility level and scripting runtime versions, and even trying non-64-bit architectures. But this error seems to persist on 32-bit builds as well! Let me know if you know how to solve this issue or know of a good work-around of some kind, because I’m stuck. Thanks!