Build with IL2CPP error

Hi, I would appreciate some help to find the solution of this problem that I’m having when I try to build my Android game with IL2CPP. I already tried to reinstall Unity with no success. Mono build executes with no problem. I changed il2cpp.exe to run as administrator in compatibility mode to avoid a previous error, but I’m stuck on this now…

Win32Exception: ApplicationName=‘D:\Program Files\2019.4.16f1\Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe’, CommandLine='–convert-to-cpp --emit-null-checks --enable-array-bounds-check --dotnetprofile=“unityaot” --compile-cpp --libil2cpp-static --platform=“Android” --architecture=“ARMv7” --configuration=“Release” --outputpath=“E:\GameDevelopment\ProjetoRealidadeAumentada\Temp\StagingArea\assets\bin\Data\Native\armeabi-v7a\libil2cpp.so” --cachedirectory=“E:\GameDevelopment\ProjetoRealidadeAumentada\Assets..\Library\il2cpp_android_armeabi-v7a/il2cpp_cache” --additional-include-directories=“D:/Program Files/2019.4.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\bdwgc/include” --additional-include-directories=“D:/Program Files/2019.4.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\libil2cpp/include” --tool-chain-path=“D:/Program Files/2019.4.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/NDK” --profiler-report --map-file-parser=“D:/Program Files/2019.4.16f1/Editor/Data/Tools/MapFileParser/MapFileParser.exe” --directory=E:/GameDevelopment/ProjetoRealidadeAumentada/Temp/StagingArea/assets/bin/Data/Managed --generatedcppdir=E:/GameDevelopment/ProjetoRealidadeAumentada/Temp/StagingArea/Il2Cpp/il2cppOutput ', CurrentDirectory=‘E:\GameDevelopment\ProjetoRealidadeAumentada\Temp\StagingArea\assets\bin\Data\Managed’, Native error= A operação solicitada requer elevação.

System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) (at :0)
System.Diagnostics.Process.Start () (at :0)
(wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEditor.Utils.Program.Start () (at <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action1[T] setupStartInfo) (at <7d90b28560b644ce87b8263efcc36eed>:0) UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List1[T] arguments, System.Action1[T] setupStartInfo, System.String workingDirectory) (at <7d90b28560b644ce87b8263efcc36eed>:0) UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (UnityEditor.Il2Cpp.Il2CppBuildPipelineData data, System.String outputDirectory, System.String workingDirectory, System.Boolean platformSupportsManagedDebugging) (at <7d90b28560b644ce87b8263efcc36eed>:0) UnityEditorInternal.IL2CPPBuilder.Run () (at <7d90b28560b644ce87b8263efcc36eed>:0) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, UnityEditorInternal.IIl2CppPlatformProvider platformProvider, System.Action1[T] modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
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 <303ae0e7a8d8441ab049e592bd1e2100>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
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 <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEngine.GUIUtility:processEvent(Int32, IntPtr)

Which version of Windows are you using to run Unity?

Also, was Unity installed as the same user account that you are using to run it?

I’m using Windows 10 Pro 64bit.
And yes, I’m using Unity on the same user account I installed it.

Just to provide more information, I was having the error bellow first, then I changed il2cpp.exe to run as adminstrator and got stuck on the error I posted on my first message.

Failed running “D:\Program Files\2019.4.16f1\Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe” --convert-to-cpp --emit-null-checks --enable-array-bounds-check --dotnetprofile=“unityaot” --compile-cpp --libil2cpp-static --platform=“Android” --architecture=“ARMv7” --configuration=“Release” --outputpath=“E:\GameDevelopment\ProjetoRealidadeAumentada\Temp\StagingArea\assets\bin\Data\Native\armeabi-v7a\libil2cpp.so” --cachedirectory=“E:\GameDevelopment\ProjetoRealidadeAumentada\Assets..\Library\il2cpp_android_armeabi-v7a/il2cpp_cache” --additional-include-directories=“D:/Program Files/2019.4.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\bdwgc/include” --additional-include-directories=“D:/Program Files/2019.4.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\libil2cpp/include” --tool-chain-path=“D:/Program Files/2019.4.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/NDK” --profiler-report --map-file-parser=“D:/Program Files/2019.4.16f1/Editor/Data/Tools/MapFileParser/MapFileParser.exe” --directory=E:/GameDevelopment/ProjetoRealidadeAumentada/Temp/StagingArea/assets/bin/Data/Managed --generatedcppdir=E:/GameDevelopment/ProjetoRealidadeAumentada/Temp/StagingArea/Il2Cpp/il2cppOutput

stdout:
IL2CPP error for type ‘UnityEngine.Experimental.Rendering.RenderPipeline’ in assembly ‘E:\GameDevelopment\ProjetoRealidadeAumentada\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.dll’
Additional information: Uma exce��o foi acionada pelo destino de uma chamada.
il2cpp.exe didn’t catch exception: System.Reflection.TargetInvocationException: Uma exce��o foi acionada pelo destino de uma chamada. —> System.NullReferenceException: Refer�ncia de objeto n�o definida para uma inst�ncia de um objeto.
em Unity.IL2CPP.ErrorInformation.set_Method(MethodDefinition value)
em Unity.IL2CPP.GenericsCollection.GenericContextFreeVisitor.Visit(MethodDefinition methodDefinition, Context context)
em Unity.Cecil.Visitor.Visitor.Visit(EventDefinition eventDefinition, Context context)
em Unity.Cecil.Visitor.Visitor.Visit(TypeDefinition typeDefinition, Context context)
em Unity.Cecil.Visitor.Visitor.Visit(ModuleDefinition moduleDefinition, Context context)
em Unity.Cecil.Visitor.Visitor.Visit(AssemblyDefinition assemblyDefinition, Context context)
— Fim do rastreamento de pilha de exce��es internas —
em System.RuntimeMethodHandle.InvokeMethod(Object target, Object[ ] arguments, Signature sig, Boolean constructor)
em System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[ ] parameters, Object[ ] arguments)
em System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[ ] parameters, CultureInfo culture)
em Unity.Cecil.Visitor.Visitor.Visit[T](T node, Context context)
em Unity.IL2CPP.GenericsCollection.GenericsCollector.CollectPerAssembly(AssemblyDefinition assembly)
em System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() em Unity.IL2CPP.GenericsCollection.GenericsCollector.MergeCollections(IEnumerable1 collections)
em Unity.IL2CPP.AssemblyConverter.Apply()
em Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(IEnumerable1 assemblyDirectories, IEnumerable1 explicitAssemblies, NPath outputDir, NPath dataFolder, NPath symbolsFolder, NPath executableAssembiesFolder, NPath monoLibFolder, NPath monoEtcFolder, NPath[ ] searchDirectories, String entryAssemblyName, NPath[ ] extraTypesFiles)
em il2cpp.Program.DoRun(String[ ] args, List`1 foundAssemblies)
em il2cpp.Program.Run(String[ ] args, Boolean setInvariantCulture)
em il2cpp.Program.Main(String[ ] args)
stderr:

Exce��o Sem Tratamento: System.Reflection.TargetInvocationException: Uma exce��o foi acionada pelo destino de uma chamada. —> System.NullReferenceException: Refer�ncia de objeto n�o definida para uma inst�ncia de um objeto.
em Unity.IL2CPP.ErrorInformation.set_Method(MethodDefinition value)
em Unity.IL2CPP.GenericsCollection.GenericContextFreeVisitor.Visit(MethodDefinition methodDefinition, Context context)
em Unity.Cecil.Visitor.Visitor.Visit(EventDefinition eventDefinition, Context context)
em Unity.Cecil.Visitor.Visitor.Visit(TypeDefinition typeDefinition, Context context)
em Unity.Cecil.Visitor.Visitor.Visit(ModuleDefinition moduleDefinition, Context context)
em Unity.Cecil.Visitor.Visitor.Visit(AssemblyDefinition assemblyDefinition, Context context)
— Fim do rastreamento de pilha de exce��es internas —
em System.RuntimeMethodHandle.InvokeMethod(Object target, Object[ ] arguments, Signature sig, Boolean constructor)
em System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[ ] parameters, Object[ ] arguments)
em System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[ ] parameters, CultureInfo culture)
em Unity.Cecil.Visitor.Visitor.Visit[T](T node, Context context)
em Unity.IL2CPP.GenericsCollection.GenericsCollector.CollectPerAssembly(AssemblyDefinition assembly)
em System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() em Unity.IL2CPP.GenericsCollection.GenericsCollector.MergeCollections(IEnumerable1 collections)
em Unity.IL2CPP.AssemblyConverter.Apply()
em Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(IEnumerable1 assemblyDirectories, IEnumerable1 explicitAssemblies, NPath outputDir, NPath dataFolder, NPath symbolsFolder, NPath executableAssembiesFolder, NPath monoLibFolder, NPath monoEtcFolder, NPath[ ] searchDirectories, String entryAssemblyName, NPath[ ] extraTypesFiles)
em il2cpp.Program.DoRun(String[ ] args, List`1 foundAssemblies)
em il2cpp.Program.Run(String[ ] args, Boolean setInvariantCulture)
em il2cpp.Program.Main(String[ ] args)

UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action1[T] setupStartInfo) (at <7d90b28560b644ce87b8263efcc36eed>:0) UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List1[T] arguments, System.Action1[T] setupStartInfo, System.String workingDirectory) (at <7d90b28560b644ce87b8263efcc36eed>:0) UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (UnityEditor.Il2Cpp.Il2CppBuildPipelineData data, System.String outputDirectory, System.String workingDirectory, System.Boolean platformSupportsManagedDebugging) (at <7d90b28560b644ce87b8263efcc36eed>:0) UnityEditorInternal.IL2CPPBuilder.Run () (at <7d90b28560b644ce87b8263efcc36eed>:0) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, UnityEditorInternal.IIl2CppPlatformProvider platformProvider, System.Action1[T] modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
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 <303ae0e7a8d8441ab049e592bd1e2100>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <303ae0e7a8d8441ab049e592bd1e2100>:0)
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 <7d90b28560b644ce87b8263efcc36eed>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

Odd, I’m not sure what is causing this issue. Can you try Unity 2020.3 or later with this project? We have changed the way the il2cpp.exe is called, which should work around this problem.

1 Like

I updated my project from 2019.4.16 to 2020.3.1 and the build problem with IL2CPP disappeared.
Thanks!