Hello
I have been attempting to publish a completed app targetting Android. After successfully implementing AdMob and Unity IAP,. When using the “Mono” backend, Unity successfully builds an APK which runs as expected on the Android device. However, I am stuck trying to build the app using the “IL2CPP” backend (to comply with Google’s x64 compatability guidelines). 3 errors are produced but I don’t have enough experience to know the root of the problem or solution.
I am using Unity 2019.1.6 with Android SDK and NDK build tools installed.
The build fails with 3 errors (Log below)
Some of the things I have tried:
Updating NDK to r20
Changing Api compatability level to .NET 4.x
Reimporting all Assets
Error 1:
Failed running C:\Program Files\Unity\Hub\Editor\2019.1.6f1\Editor\Data\il2cpp/build/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=“C:\TEMP\SmashBlox_Game\Temp\StagingArea\assets\bin\Data\Native\armeabi-v7a\libil2cpp.so” --cachedirectory=“C:\TEMP\SmashBlox_Game\Assets..\Library\il2cpp_android_armeabi-v7a/il2cpp_cache” --additional-include-directories=“C:\Program Files\Unity\Hub\Editor\2019.1.6f1\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\bdwgc/include” --additional-include-directories=“C:\Program Files\Unity\Hub\Editor\2019.1.6f1\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\libil2cpp/include” --tool-chain-path=“C:/Program Files/Unity/Hub/Editor/2019.1.6f1/Editor/Data/PlaybackEngines/AndroidPlayer/NDK” --profiler-report --map-file-parser=“C:/Program Files/Unity/Hub/Editor/2019.1.6f1/Editor/Data/Tools/MapFileParser/MapFileParser.exe” --directory=C:/TEMP/SmashBlox_Game/Temp/StagingArea/assets/bin/Data/Managed --generatedcppdir=C:/TEMP/SmashBlox_Game/Temp/StagingArea/Il2Cpp/il2cppOutput
stdout:
il2cpp.exe didn’t catch exception: System.Exception: Android NDK r13b or newer not detected at ‘C:\Program Files\Unity\Hub\Editor\2019.1.6f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK’.
at Unity.IL2CPP.Building.ToolChains.Android.AndroidNDKUtilities…ctor(NPath ndkRootPath, Architecture architecture, Boolean useDependenciesToolChain)
at Unity.IL2CPP.Building.ToolChains.AndroidToolChain…ctor(Architecture architecture, BuildConfiguration buildConfiguration, Boolean treatWarningsAsErrors, Boolean assemblyOutput, Boolean useDependenciesToolChain, NPath toolchainPath)
at Unity.IL2CPP.Building.Platforms.AndroidPlatformSupport.MakeCppToolChain(BuildingOptions buildingOptions)
at il2cpp.Program.DoRun(String[ ] args)
at il2cpp.Program.Run(String[ ] args)
at il2cpp.Program.Main(String[ ] args)
stderr:
Unhandled Exception: System.Exception: Android NDK r13b or newer not detected at ‘C:\Program Files\Unity\Hub\Editor\2019.1.6f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK’.
at Unity.IL2CPP.Building.ToolChains.Android.AndroidNDKUtilities…ctor(NPath ndkRootPath, Architecture architecture, Boolean useDependenciesToolChain)
at Unity.IL2CPP.Building.ToolChains.AndroidToolChain…ctor(Architecture architecture, BuildConfiguration buildConfiguration, Boolean treatWarningsAsErrors, Boolean assemblyOutput, Boolean useDependenciesToolChain, NPath toolchainPath)
at Unity.IL2CPP.Building.Platforms.AndroidPlatformSupport.MakeCppToolChain(BuildingOptions buildingOptions)
at il2cpp.Program.DoRun(String[ ] args)
at il2cpp.Program.Run(String[ ] args)
at il2cpp.Program.Main(String[ ] args)
UnityEngine.Debug:LogError(Object)
UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:128)
UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action1) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73) UnityEditorInternal.IL2CPPBuilder:RunIl2CppWithArguments(List
1, Action1, String) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:496) UnityEditorInternal.IL2CPPBuilder:ConvertPlayerDlltoCpp(String, String, String, Boolean) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:477) UnityEditorInternal.IL2CPPBuilder:Run() (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:334) UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action
1, RuntimeClassRegistry) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:63)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Error 2:
Exception: C:\Program Files\Unity\Hub\Editor\2019.1.6f1\Editor\Data\il2cpp/build/il2cpp.exe did not run properly!
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:130)
UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action1[T] setupStartInfo) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73) UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List
1[T] arguments, System.Action1[T] setupStartInfo, System.String workingDirectory) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:496) UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (System.String inputDirectory, System.String outputDirectory, System.String workingDirectory, System.Boolean platformSupportsManagedDebugging) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:477) UnityEditorInternal.IL2CPPBuilder.Run () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:334) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, UnityEditorInternal.IIl2CppPlatformProvider platformProvider, System.Action
1[T] modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:63)
UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <4132c5c2cd7b45b09ef33302ae416489>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <4132c5c2cd7b45b09ef33302ae416489>: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 <4132c5c2cd7b45b09ef33302ae416489>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <4132c5c2cd7b45b09ef33302ae416489>: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 C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:281)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Error 3:
UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x00242] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:194
at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x0007f] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:97
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Any help is greatly appreciated as I am running out of ideas!
Thanks
Jack