【问题标题】:Unity Build - Exception: il2cpp.exe did not run properlyUnity Build - 异常:il2cpp.exe 没有正常运行
【发布时间】:2020-03-22 11:16:49
【问题描述】:

使用 Unity 2017.4.34f1 (LTS)IL2CPPNDK r13b,我尝试将我的 Unity 项目导出到 Android 项目(构建过程)。

注意:我正在使用 IL2CPP,因为 Google PlayStore 需要 32 位和 64 位,所以我不能再使用 Mono 作为 脚本后端

但是,它失败了,我收到以下错误:

Exception: C:\Program Files\Unity\Hub\Editor\2017.4.34f1\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.Action`1 setupStartInfo) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List`1 arguments, System.Action`1 setupStartInfo, System.String workingDirectory) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:336)
UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (ICollection`1 userAssemblies, System.String outputDirectory, System.String workingDirectory) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:317)
UnityEditorInternal.IL2CPPBuilder.Run () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:160)
UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action`1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry, Boolean debugBuild) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:34)
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.BuildReporting.BuildReport report)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
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.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:272)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

还有一个错误日志:

Failed running C:\Program Files\Unity\Hub\Editor\2017.4.34f1\Editor\Data\il2cpp/build/il2cpp.exe --convert-to-cpp --emit-null-checks --enable-array-bounds-check --development-mode --compile-cpp --libil2cpp-static --platform="Android" --architecture="ARMv7" --configuration="Release" --outputpath="C:\Users\zukinaru\Desktop\orisnowyndo\Temp/StagingArea\assets\bin\Data\Native\armeabi-v7a\libil2cpp.so" --cachedirectory="C:\Users\zukinaru\Desktop\orisnowyndo\Assets\..\Library\il2cpp_android_armeabi-v7a/il2cpp_cache" --additional-include-directories="C:\Program Files\Unity\Hub\Editor\2017.4.34f1\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\bdwgc/include" --additional-include-directories="C:\Program Files\Unity\Hub\Editor\2017.4.34f1\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\libil2cpp/include" --tool-chain-path="C:/android-ndk-r13b-windows-x86_64/android-ndk-r13b" --map-file-parser="C:\Program Files\Unity\Hub\Editor\2017.4.34f1\Editor\Data\Tools\MapFileParser\MapFileParser.exe" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\Assembly-CSharp-firstpass.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\Assembly-CSharp.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.UI.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\DOTween.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\Facebook.Unity.Settings.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\PlayMaker.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\TextMeshPro-1.0.55.2017.1.0b12.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.Analytics.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\Facebook.Unity.Android.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\Facebook.Unity.Canvas.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\Facebook.Unity.IOS.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\mscorlib.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\Stores.dll" --assembly="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Managed\UnityEngine.Purchasing.dll" --generatedcppdir="C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput" 

stdout:
Building libil2cpp.so with AndroidToolChain.
    Output directory: C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Native\armeabi-v7a
    Cache directory: C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache
ObjectFiles: 691 of which compiled: 282
    Time Compile: 54396 milliseconds Il2CppAttributes.cpp
    Time Compile: 23198 milliseconds Bulk_TextMeshPro-1.0.55.2017.1.0b12_0.cpp
    Time Compile: 21138 milliseconds Il2CppInvokerTable.cpp
    Time Compile: 20951 milliseconds Bulk_mscorlib_16.cpp
    Time Compile: 16387 milliseconds Bulk_Assembly-CSharp_19.cpp
    Time Compile: 15667 milliseconds Bulk_mscorlib_17.cpp
    Time Compile: 13478 milliseconds GenericMethods24.cpp
    Time Compile: 13394 milliseconds Il2CppMetadataUsage.cpp
    Time Compile: 13278 milliseconds Bulk_Mad2D_0.cpp
    Time Compile: 12015 milliseconds Bulk_mscorlib_10.cpp
Total compilation time: 765251 milliseconds.
il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException: C:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++ @"C:\Users\zukinaru\AppData\Local\Temp\tmp56A5.tmp" -o "C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_6D290C36A270BA4A86083617583BFE15\libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "C:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\platforms\android-16\arch-arm" -gcc-toolchain "C:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64" -target armv7-none-linux-androideabi -Wl,--wrap,sigaction -L "C:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi-v7a" -lgnustl_static -llog -Xlinker -Map="C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_6D290C36A270BA4A86083617583BFE15\libil2cpp.map" -rdynamic -fPIE -pie -fuse-ld=bfd.exe

clang++.exe: warning: argument unused during compilation: '-pie'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_init_m2214171880':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:543: undefined reference to `init'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_logout_m2238411584':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:571: undefined reference to `logout'
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:571: undefined reference to `logout'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_activateApp_m160690348':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:581: undefined reference to `activateApp'
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:581: undefined reference to `activateApp'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_logPurchase_m2329488507':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:605: undefined reference to `logPurchase'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_ui_m1731210125':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:635: undefined reference to `ui'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_initScreenPosition_m891649343':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:657: undefined reference to `initScreenPosition'
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:657: undefined reference to `initScreenPosition'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)


   at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(IEnumerable`1 objectFiles, CppToolChainContext toolChainContext)
   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
   at Unity.IL2CPP.Building.Statistics.BuildingTestRunnerHelper.BuildAndLogStatsForTestRunner(CppProgramBuilder builder, 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: C:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++ @"C:\Users\zukinaru\AppData\Local\Temp\tmp56A5.tmp" -o "C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_6D290C36A270BA4A86083617583BFE15\libil2cpp.so" -shared -Wl,-soname,libil2cpp.so -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--gc-sections -Wl,--build-id --sysroot "C:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\platforms\android-16\arch-arm" -gcc-toolchain "C:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64" -target armv7-none-linux-androideabi -Wl,--wrap,sigaction -L "C:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\sources\cxx-stl\gnu-libstdc++\4.9\libs\armeabi-v7a" -lgnustl_static -llog -Xlinker -Map="C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\linkresult_6D290C36A270BA4A86083617583BFE15\libil2cpp.map" -rdynamic -fPIE -pie -fuse-ld=bfd.exe

clang++.exe: warning: argument unused during compilation: '-pie'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_init_m2214171880':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:543: undefined reference to `init'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_logout_m2238411584':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:571: undefined reference to `logout'
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:571: undefined reference to `logout'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_activateApp_m160690348':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:581: undefined reference to `activateApp'
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:581: undefined reference to `activateApp'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_logPurchase_m2329488507':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:605: undefined reference to `logPurchase'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_ui_m1731210125':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:635: undefined reference to `ui'
C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache\43B0E2C486C7D35B13D99EAC9094B83F.o: In function `CanvasJSWrapper_initScreenPosition_m891649343':
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:657: undefined reference to `initScreenPosition'
C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Facebook.Unity.Canvas_0.cpp:657: undefined reference to `initScreenPosition'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)


   at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(IEnumerable`1 objectFiles, CppToolChainContext toolChainContext)
   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
   at Unity.IL2CPP.Building.Statistics.BuildingTestRunnerHelper.BuildAndLogStatsForTestRunner(CppProgramBuilder builder, IBuildStatistics& statistics)
   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, Action`1) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
UnityEditorInternal.IL2CPPBuilder:RunIl2CppWithArguments(List`1, Action`1, String) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:336)
UnityEditorInternal.IL2CPPBuilder:ConvertPlayerDlltoCpp(ICollection`1, String, String) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:317)
UnityEditorInternal.IL2CPPBuilder:Run() (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:160)
UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action`1, RuntimeClassRegistry, Boolean) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:34)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

到目前为止我做了什么:

1) 尝试使用 NDK r16b,但失败了,因为 Unity 2017.4 只想要 NDK r13b

2) 以管理员身份运行 Unity,但仍无法解决

==更新日志(Unity 2017.4.39):

Exception: C:\Program Files\Unity\Hub\Editor\2017.4.39f1\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.Action`1 setupStartInfo) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List`1 arguments, System.Action`1 setupStartInfo, System.String workingDirectory) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:336)
UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (ICollection`1 userAssemblies, System.String outputDirectory, System.String workingDirectory) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:317)
UnityEditorInternal.IL2CPPBuilder.Run () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:160)
UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action`1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry, Boolean debugBuild) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:34)
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.BuildReporting.BuildReport report)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
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.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:272)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

===更新(Unity 2017.4.8f1)

已尝试使用 Unity 2017.4.8f1(我成功构建 APK 的原始版本)但仍然无法使用 x64(IL2CPP)导出到 Android Studio Project,我正计划构建 AppBundle x64使用导出的 Android Native/Android Studio。

如果使用内部(32 位)是成功的,但 Google 现在需要 x64 APK/AppBundle 构建。如果我以前知道这一点,我会从一开始就使用IL2CPP(不是内部的),解决这个错误真是太令人沮丧了。如果我现在要迁移到Unity 2019,那么我要做的事情太多了……

【问题讨论】:

  • 这个项目最初是 2017.4.34f1 项目吗?或者它是否已从沿线某处的不同版本更新?我在一个更新的项目中发生了这种情况。在所需版本上创建一个新项目并将项目导入其中为我解决了它
  • 这看起来与此处发布的问题相同:stackoverflow.com/questions/59105603/…
  • @JoshPeterson 是的,这是同一个问题。我曾尝试使用旧版本进行构建(Unity 2017.4.8f1),但仍然失败.....
  • @Remy 不,原来是 2017.4.8f1 但现在它失败了,因为在最初我的构建使用的是内部的(它是成功的)。但现在,谷歌需要 x64 构建,所以我使用 il2cpp 构建 x64 但仍然失败
  • 检查这个问题解决了[stackoverflow.com/questions/61944426/…

标签: android unity3d gradle android-ndk il2cpp


【解决方案1】:

我刚刚遇到了这个问题,并且相信我找到了解决这个底层 IL2CPP 构建问题的方法之一。我有下面粗体字的解决方案来说明问题。以下是我发现的。我的问题是由于以下错误:

    stdout:
Building build.bc with EmscriptenToolChain
    Output directory: D:\xxxx\Unity\Projects\01_2d_projects\SiteEstablish\Temp\StagingArea\Data\Native
    Cache directory: D:\xxxx\Unity\Projects\01_2d_projects\SiteEstablish\Library\il2cpp_cache
il2cpp.exe didn't catch exception: Unity.IL2CPP.Building.BuilderFailedException:   File "C:\Users\xxxxxxx\AppData\Local\Programs\Python\Python37-32\Lib\site.py", line 177
    file=sys.stderr)
    ^

SyntaxError: 无效语法

我有一种很好的预感,没有理由运行该文件,并且只能想到一个可能来自“环境变量”的区域。该路径位于“PATH”下,为“%PYTHONPATH%”,这将是与该目录的唯一连接失败。即使从“环境变量”中删除了这些项目,路径仍然受到打击。我最终将 Python 目录完全移动到了不同的位置,然后将平台从 Windows 切换回 WebGL,然后成功了。这可能在不删除目录文件的情况下是可能的,但我不知道 Unity 构建的行为是如何工作的。我试图重新创建问题,但构建仍然成功。所以,我能做的就是希望这会有所帮助。

半解决方案(请谨慎执行以下操作。如果从系统变量中删除路径,您可能会遇到非常糟糕的一天!):

在您的错误中,您需要在“Path”系统变量中找到目录路径,并将其删除。下面,你可能会像“C:\Users\zukinaru\Desktop\”这样的东西,可以更详细:

标准输出: 使用 AndroidToolChain 构建 libil2cpp.so。 输出目录:C:\Users\zukinaru\Desktop\orisnowyndo\Temp\StagingArea\assets\bin\Data\Native\armeabi-v7a 缓存目录:C:\Users\zukinaru\Desktop\orisnowyndo\Library\il2cpp_android_armeabi-v7a\il2cpp_cache

就像在我的图像中一样,在您的系统上找到“路径”变量,然后删除路径(保存您所做的,以便您可以在之后将它们放回原处)。点击“确定”,直到全部保存。将平台从任何东西切换回“WebGL”。我相信 IL2CPP 中的迷你应用程序可能是从这些系统变量中提取的,并且它以这种方式与构建混淆。我相信这就是我看到这个问题的原因,但是由于每个人的路径变量设置都因电脑而异。

【讨论】:

  • 嗨,为什么和python有关?我看到了我的错误日志,没有提到 python。有什么想法吗?
  • 这是因为每个用户的每个错误都会有所不同,我假设取决于在 IL2CPP 中运行的应用程序。我的实例由于我的“路径”系统变量指向 Python 中的目录而中断。其他人根据他们的“路径”系统变量中的内容而中断。似乎有多个程序在 IL2CPP 的表面下运行。它用“AndroidToolChain”为你打破。我的与“EmscriptenToolChain”中断。为了解决我的问题,我必须删除到正在破坏的区域的路径,以允许 IL2CPP 在不破坏的情况下完成它的构建。
  • 这更像是一个 Unity -> IL2CPP 问题。碰巧你的android路径由于某种原因使用路径而破坏了IL2CPP。
  • 如此简单地从我在 il2cpp 错误中提到的我的电脑环境变量中删除路径。对吗?
  • 没错。您应该能够在“路径”系统变量中看到应该与错误路径相匹配的目录路径。记下要删除的内容,但要这样做,然后试一试。如果一开始这不起作用并且您在尝试构建时遇到相同的错误,请尝试在任何平台之间“切换平台”,然后将平台切换回“WebGL”,然后试一试。
【解决方案2】:

看来您可能使用了为较新版本的 Unity 开发的 Facebook 插件。
要确认这一点,您使用一个空项目 + Facebook(或您想测试的其他插件)并构建它,看看是否发生错误。

【讨论】:

    【解决方案3】:

    将您的脚本运行时更改为 Mono 而不是 IL2CPP,它可能会解决您的问题。

    【讨论】:

    • 嗨,mono可以构建64位APK吗?
    • 是的。您可以使用 Mono 构建 64 位 apk
    • 嗨@Codemaker你知道怎么做吗?因为我在 Unity 编辑器中找不到使用 Mono 构建 arm64 的任何选项...在此先感谢您...
    • 我的统一编辑器截图 = prnt.sc/17an40f
    猜你喜欢
    • 2021-10-13
    • 1970-01-01
    • 2017-06-17
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 2012-09-15
    • 1970-01-01
    相关资源
    最近更新 更多