SciSharp / TensorFlow.NET

.NET Standard bindings for Google's TensorFlow for developing, training and deploying Machine Learning models in C# and F#.
https://scisharp.github.io/tensorflow-net-docs
Apache License 2.0
3.17k stars 507 forks source link

Error on Unity3d while building for iOS #981

Open burungiu opened 1 year ago

burungiu commented 1 year ago

Hello, I use Tensorflow.NET to process some data in a unity3d mobile application.

It runs in Unity3d editor, but when I want to build it for iOS it stops with error. Macbook pro 16 2019 Unity3D 2021.3.18f1

Exception: Unity.IL2CPP.Building.BuilderFailedException: Build failed with 0 successful nodes and 1 failed ones Annotation: IL2CPP_CodeGen /Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS/buildstate/artifacts/il2cpp_conv_x4og.traceevents Cmdline: "/Applications/Unity/Hub/Editor/2021.3.18f1/Unity.app/Contents/il2cpp/build/deploy/il2cpp" --convert-to-cpp --directory="/Users/myuser/Downloads/CustomProject/Temp/StagingArea/Data/Managed" --data-folder="/Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS/il2cppOutput/Data" --generatedcppdir="/Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS/il2cppOutput" --symbols-folder="/Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS/il2cppOutput/Symbols" --additional-cpp="/Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS/additionalCppFiles/UnityClassRegistration.cpp" --additional-cpp="/Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS/additionalCppFiles/UnityICallRegistration.cpp" --emit-null-checks --enable-array-bounds-check --code-generation-option=EnableInlining --stats-output-dir="/Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS/il2cppStats" --dotnetprofile=unityaot-macos --cachedirectory="/Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS" --profiler-report --profiler-output-file="/Users/myuser/Downloads/CustomProject/Library/Il2cppBuildCache/iOS/buildstate/artifacts/il2cpp_conv_x4og.traceevents" ExitCode: 255 Stdout: Error: IL2CPP error for method 'System.ValueTuple2<Tensorflow.Tensor,Tensorflow.Tensor> Tensorflow.image_ops_impl::non_max_suppression_padded_v2(Tensorflow.Tensor,Tensorflow.Tensor,Tensorflow.Tensor,System.Single,System.Single,System.Boolean,System.Boolean,System.Int32)' in assembly '/Users/myuser/Downloads/CustomProject/Temp/StagingArea/Data/Managed/TensorFlow.NET.dll' System.ArgumentException: System.Object is not an array type (Parameter 'typeReference') at Unity.IL2CPP.ArrayUtilities.ArrayElementTypeOf(ResolvedTypeInfo typeReference) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/ArrayUtilities.cs:line 18 at Unity.IL2CPP.MethodBodyWriter.ProcessInstruction(Node node, InstructionBlock block, ResolvedInstruction ins) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/MethodBodyWriter.cs:line 1770 at Unity.IL2CPP.MethodBodyWriter.GenerateCodeRecursive(Node node, ReadOnlyDictionary2 instructionBlocks) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/MethodBodyWriter.cs:line 424 at Unity.IL2CPP.MethodBodyWriter.Generate() in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/MethodBodyWriter.cs:line 245 at Unity.IL2CPP.CodeWriters.CodeWriterExtensions.WriteMethodWithMetadataInitialization(IGeneratedMethodCodeWriter writer, String methodSignature, Action2 writeMethodBody, String uniqueIdentifier, MethodReference methodRef, Boolean writingMethodBody) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/CodeWriters/CodeWriterExtensions.cs:line 153 at Unity.IL2CPP.MethodWriter.WriteMethodDefinition(AssemblyWriteContext context, IGeneratedMethodCodeWriter writer, MethodReference method) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/MethodWriter.cs:line 63 at Unity.IL2CPP.SourceWriter.WriteTypesMethods(SourceWritingContext context, IGeneratedMethodCodeWriter writer, TypeWritingInformation& writingInformation, NPath filePath, Boolean writeMarshalingDefinitions) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/SourceWriter.cs:line 89 at Unity.IL2CPP.SourceWriters.TypeMethodsSourceWriter.WriteItem(SourceWritingContext context, IGeneratedMethodCodeWriter writer, TypeWritingInformation item, NPath filePath) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/SourceWriters/TypeMethodsSourceWriter.cs:line 64 at Unity.IL2CPP.SourceWriters.SourceWriterBase2.WriteItem(StreamWorkItemData2 data) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/SourceWriters/SourceWriterBase.cs:line 92 at Unity.IL2CPP.Contexts.Scheduling.Streams.FileLevelParallelStreamManager3.WorkerWriteItemsToFile(WorkItemData2 data) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/Contexts.Scheduling.Streams/FileLevelParallelStreamManager.cs:line 36 at Unity.IL2CPP.Contexts.Scheduling.PhaseWorkScheduler`1.WorkerLoop(Object data) in /Users/bokken/build/output/unity/il2cpp/Unity.IL2CPP/Contexts.Scheduling/PhaseWorkScheduler.cs:line 339

at il2cpp.Program.DoRun(String[] args, RuntimePlatform platform, Il2CppCommandLineArguments il2CppCommandLineArguments, BuildingOptions buildingOptions, Boolean throwExceptions) in /Users/bokken/build/output/unity/il2cpp/il2cpp/Program.cs:line 339 UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at /Users/bokken/build/output/unity/unity/Editor/Mono/BuildPipeline/BuildUtils.cs:129) UnityEditorInternal.Runner.RunNetCoreProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action1[T] setupStartInfo) (at /Users/bokken/build/output/unity/unity/Editor/Mono/BuildPipeline/BuildUtils.cs:91) UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List1[T] arguments, System.Action1[T] setupStartInfo) (at /Users/bokken/build/output/unity/unity/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:817) UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (UnityEditor.Il2Cpp.Il2CppBuildPipelineData data) (at /Users/bokken/build/output/unity/unity/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:801) UnityEditorInternal.IL2CPPBuilder.Run () (at /Users/bokken/build/output/unity/unity/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:639) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, UnityEditorInternal.IIl2CppPlatformProvider platformProvider, System.Action1[T] modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at /Users/bokken/build/output/unity/unity/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:279) UnityEditor.iOS.PostProcessiPhonePlayer.CrossCompileManagedDlls (UnityEditor.iOS.PostProcessiPhonePlayer+BuildSettings bs, UnityEditor.iOS.PostProcessiPhonePlayer+ProjectPaths paths, UnityEditor.AssemblyReferenceChecker checker, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport buildReport) (at /Users/bokken/build/output/unity/unity/PlatformDependent/iPhonePlayer/Extensions/Common/BuildPostProcessor.cs:932) UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.PostProcessiPhonePlayer+BuildSettings bs, UnityEditor.iOS.PostProcessiPhonePlayer+ProjectPaths paths, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport buildReport) (at /Users/bokken/build/output/unity/unity/PlatformDependent/iPhonePlayer/Extensions/Common/BuildPostProcessor.cs:755) UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.PostProcessorSettings postProcessorSettings, UnityEditor.Modules.BuildPostProcessArgs args) (at /Users/bokken/build/output/unity/unity/PlatformDependent/iPhonePlayer/Extensions/Common/BuildPostProcessor.cs:695) UnityEditor.iOS.iOSBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at /Users/bokken/build/output/unity/unity/PlatformDependent/iPhonePlayer/Extensions/Common/ExtensionModule.cs:45) Rethrow as BuildFailedException: Exception of type 'UnityEditor.Build.BuildFailedException' was thrown. UnityEditor.iOS.iOSBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at /Users/bokken/build/output/unity/unity/PlatformDependent/iPhonePlayer/Extensions/Common/ExtensionModule.cs:49) UnityEditor.Modules.DefaultBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at /Users/bokken/build/output/unity/unity/Editor/Mono/Modules/DefaultBuildPostprocessor.cs:28) UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.Int32 subtarget, 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 /Users/bokken/build/output/unity/unity/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:370) UnityEditor.EditorApplication:Internal_CallGlobalEventHandler() (at /Users/bokken/build/output/unity/unity/Editor/Mono/EditorApplication.cs:462) `

burungiu commented 1 year ago

up

AsakusaRinne commented 1 year ago

Could you please provide the C# language version and dotnet version (and any other possibly useful information)? I have little knowledge about Unity but I'd like to try to help you to find the reason of this error.