Search Unity

Unity 2021.3.0 Android build error

Discussion in 'Editor & General Support' started by Ponytech, Apr 14, 2022.

  1. Ponytech

    Ponytech

    Joined:
    Jun 13, 2016
    Posts:
    33
    Hey

    We have just update Unity to the latest LTS version, 2021.3.0 and can't build on Android.
    It used to work with 2020.3.21.

    Here is the error log:

    Code (CSharp):
    1.  
    2. Building Library\Bee\artifacts\Android\ManagedStripped failed with output:
    3. C:\Program Files\Unity\Hub\Editor\2021.3.0f1\Editor\Data\il2cpp\build\deploy\UnityLinker.exe --search-directory=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed --out=Library/Bee/artifacts/Android/ManagedStripped --include-link-xml=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed\MethodsToPreserve.xml --include-link-xml=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed\TypesInScenes.xml --include-link-xml=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed\SerializedTypes.xml --include-link-xml=C:\patrice\Unity\my-game\Assets\FacebookSDK\link.xml --include-link-xml=C:\patrice\Unity\my-game\Assets\Common\Packages\Best HTTP\link.xml --include-link-xml=C:/Program Files/Unity/Hub/Editor/2021.3.0f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools/AndroidNativeLink.xml --include-directory=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed --dotnetprofile=unityaot-linux --dotnetruntime=Il2Cpp --platform=Android --use-editor-options --enable-engine-module-stripping --engine-stripping-flag=EnableUnityConnect --engine-stripping-flag=EnablePerformanceReporting --engine-stripping-flag=EnableAnalytics --engine-stripping-flag=EnableCrashReporting --engine-modules-asset-file=C:/Program Files/Unity/Hub/Editor/2021.3.0f1/Editor/Data/PlaybackEngines/AndroidPlayer/modules.asset --editor-data-file=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/EditorToUnityLinkerData.json --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/Assembly-CSharp-firstpass.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/BestHTTP.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/Unity.TextMeshPro.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/AppsFlyer.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/UnityEngine.UI.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/UnityEngine.Purchasing.Codeless.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/Unity.PlayerPrefsEditor.Samples.SampleScene.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/SimpleSQL_Runtime.dll --include-unity-root-assembly=C:/patrice/Unity/my-game/Temp/StagingArea/Data/Managed/Facebook.Unity.Settings.dll --print-command-line
    4. Fatal error in Unity CIL Linker
    5. System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'value')
    6.    at System.IO.FileStream.set_Position(Int64 value)
    7.    at Mono.CompilerServices.SymbolWriter.MethodEntry..ctor(MonoSymbolFile file, MyBinaryReader reader, Int32 index)
    8.    at Mono.CompilerServices.SymbolWriter.MonoSymbolFile.read_methods()
    9.    at Mono.CompilerServices.SymbolWriter.MonoSymbolFile.GetMethodByToken(Int32 token)
    10.    at Mono.Cecil.Mdb.MdbReader.Read(MethodDefinition method)
    11.    at Mono.Cecil.Cil.CodeReader.ReadMethodBody()
    12.    at Mono.Cecil.Cil.CodeReader.ReadMethodBody(MethodDefinition method)
    13.    at Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TRet& variable, TItem item, Func`3 read)
    14.    at Mono.Cecil.MethodDefinition.get_Body()
    15.    at Mono.Linker.Steps.MarkStep.IsNonEmptyStaticConstructor(MethodDefinition method)
    16.    at Mono.Linker.Steps.MarkStep.MarkMethodIf(Collection`1 methods, Func`2 predicate, DependencyInfo& reason, IMemberDefinition sourceLocationMember)
    17.    at Mono.Linker.Steps.MarkStep.MarkStaticConstructor(TypeDefinition type, DependencyInfo& reason, IMemberDefinition sourceLocationMember)
    18.    at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember)
    19.    at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember)
    20.    at Mono.Linker.Steps.MarkStep.MarkField(FieldDefinition field, DependencyInfo& reason)
    21.    at Mono.Linker.Steps.MarkStep.MarkEntireTypeInternal(TypeDefinition type, Boolean includeBaseTypes, DependencyInfo& reason, IMemberDefinition sourceLocationMember, HashSet`1 typesAlreadyVisited)
    22.    at Mono.Linker.Steps.MarkStep.MarkEntireTypeInternal(TypeDefinition type, Boolean includeBaseTypes, DependencyInfo& reason, IMemberDefinition sourceLocationMember, HashSet`1 typesAlreadyVisited)
    23.    at Mono.Linker.Steps.MarkStep.MarkEntireAssembly(AssemblyDefinition assembly)
    24.    at Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly)
    25.    at Unity.Linker.Steps.UnityMarkStep.InitializeAssembly(AssemblyDefinition assembly)
    26.    at Mono.Linker.Steps.MarkStep.Initialize()
    27.    at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
    28.    at Unity.Linker.Steps.UnityMarkStep.Process(LinkContext context)
    29.    at Unity.Linker.UnityPipeline.ProcessStep(LinkContext context, IStep step)
    30.    at Mono.Linker.Pipeline.Process(LinkContext context)
    31.    at Unity.Linker.UnityDriver.UnityRun(Boolean noProfilerAllowed, ILogger customLogger)
    32.    at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling(ILogger customLogger, Boolean noProfilerAllowed)
    33.    at Unity.Linker.UnityDriver.RunDriver()
    34. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
    35.  
    I have no idea what the
    Non-negative number required. (Parameter 'value')
    could be.
    Any ideas?
     
  2. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    38,728
    First find if the new install can build a small blank project with one scene.
     
  3. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,680
    There is likely a non-matching .mdb file next to one of precompiled .dll files in your project. You should be able to delete it to make the error go away.
     
  4. Ponytech

    Ponytech

    Joined:
    Jun 13, 2016
    Posts:
    33
    Indeed, removing all .mdb files from the project passes the linker stage. I'd have never find out this fix myself, thanks a lot. What are those .mdb files by the way? Should I remove them from source control if they get re-generated?

    Now the build fails on Gradle, I'll investigate a bit before requiring help.
     
  5. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,680
    .mdb files contain debug information in the old Mono debug format. They have been superseded by PDB files. Unity doesn't auto generate them so I don't think they will come back.