Search Unity

Got "ArgumentNullException: Argument cannot be null." When build on iOS

Discussion in 'iOS and tvOS' started by Deleted User, Mar 4, 2015.

  1. Deleted User

    Deleted User

    Guest

    It's okay when I build with "Replace" but not okay when I build with "Append"

    I try to figure out solutions, but it's all about UnityEditor.iOS.Xcode namespace;

    I'm using Unity 5.0.0f4 Personal.

    And Plugins are
    - IOS Native
    - Facebook SDK
    - Unibill
    - Smartlocalization
    - Anti-Cheat Toolkit
    - UnityRandom
    - GoogleMobileAds
    - GoogleAnalytics

    Stacktrace is below.
    -----------------------------------------------------------------------------------------------------------------------------------------------
    ArgumentNullException: Argument cannot be null.
    Parameter name: key
    System.Collections.Generic.Dictionary`2[System.String,UnityEditor.iOS.Xcode.PBXBuildFile].set_Item (System.String key, UnityEditor.iOS.Xcode.PBXBuildFile value) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:155)
    UnityEditor.iOS.Xcode.PBXProject.RefreshBuildFilesMapForBuildFileGuidList (System.Collections.Generic.Dictionary`2 mapForTarget, UnityEditor.iOS.Xcode.FileGUIDListBase list)
    UnityEditor.iOS.Xcode.PBXProject.RefreshAuxMaps ()
    UnityEditor.iOS.Xcode.PBXProject.ReadFromStream (System.IO.TextReader sr)
    UnityEditor.iOS.Xcode.PBXProject.ReadFromString (System.String src)
    UnityEditor.iOS.Xcode.PBXProject.ReadFromFile (System.String path)
    UnityEditor.iOS.PostProcessiPhonePlayer.BuildXCodeProject (UnityEditor.iOS.ProjectPaths paths, UnityEditor.iOS.IncludedFileList includedFiles, System.Collections.Generic.List`1 frameworks, System.String sdkVersion, System.String targetOS, System.String productName, Boolean useIl2Cpp, Boolean installInBuildFolder, Boolean dontCopyToBuildDir)
    UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.iOSBuildPostprocessor pp, BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String stagingAreaDataManaged, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
    UnityEditor.iOS.iOSBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
    UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316)
    UnityEditor.HostView:OnGUI()
    -----------------------------------------------------------------------------------------------------------------------------------------------
     
    O4s likes this.
  2. O4s

    O4s

    Joined:
    Jan 15, 2014
    Posts:
    8
    We're getting the same error and similar stacktrace. I've just created a new blank project and testing each asset at a time. I'll make an update if we find anything out.

    ArgumentNullException: Argument cannot be null.
    Parameter name: key
    System.Collections.Generic.Dictionary`2[System.String,UnityEditor.iOS.Xcode.PBXBuildFile].set_Item (System.String key, UnityEditor.iOS.Xcode.PBXBuildFile value) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:155)
    UnityEditor.iOS.Xcode.PBXProject.RefreshBuildFilesMapForBuildFileGuidList (System.Collections.Generic.Dictionary`2 mapForTarget, UnityEditor.iOS.Xcode.FileGUIDListBase list)
    UnityEditor.iOS.Xcode.PBXProject.RefreshAuxMaps ()
    UnityEditor.iOS.Xcode.PBXProject.ReadFromStream (System.IO.TextReader sr)
    UnityEditor.iOS.Xcode.PBXProject.ReadFromString (System.String src)
    UnityEditor.iOS.Xcode.PBXProject.ReadFromFile (System.String path)
    UnityEditor.iOS.PostProcessiPhonePlayer.BuildXCodeProject (UnityEditor.iOS.ProjectPaths paths, UnityEditor.iOS.IncludedFileList includedFiles, System.Collections.Generic.List`1 frameworks, System.String sdkVersion, System.String targetOS, System.String productName, Boolean useIl2Cpp, Boolean installInBuildFolder, Boolean dontCopyToBuildDir)
    UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.iOSBuildPostprocessor pp, BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String stagingAreaDataManaged, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
    UnityEditor.iOS.iOSBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
    UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316)
    UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
     
  3. O4s

    O4s

    Joined:
    Jan 15, 2014
    Posts:
    8
    Thanks for mentioning about the 'Replace' instead of 'Append' breadceo. We were doing Replace but still having that problem, however we decided to delete the build folder and start with a fresh empty folder.

    So far so good, Unity 5 built to an iPhone 5 with mono backend fine and also IL2CPP on an iPad Air 2.
     
    Last edited: Mar 4, 2015
  4. Deleted User

    Deleted User

    Guest

    Thanks for your replay O4s. It's good for you to solve this problem.

    I tried your solution, however I faced a new kind of error.
    Unibill uses POST method to fetch inventory data but IL2CPP doesn't support WWW POST yet.
    I decide to downgrade my project and wait for their updates.
     
  5. povilas

    povilas

    Unity Technologies

    Joined:
    Jan 28, 2014
    Posts:
    427
    Hi,

    This issue is known and is caused by incorrect xcode project modifications by plugins. A work around has already been made and will be released in 5.0.0p1.
     
  6. kreso

    kreso

    Joined:
    Sep 7, 2013
    Posts:
    147
    Version 5.0.0p1. I deleted old build before building. Getting this error:

    ArgumentNullException: Argument cannot be null.
    Parameter name: key
    System.Collections.Generic.Dictionary`2[System.String,UnityEditor.iOS.Xcode.PBXBuildFile].set_Item (System.String key, UnityEditor.iOS.Xcode.PBXBuildFile value) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:155)
    UnityEditor.iOS.Xcode.PBXProject.RefreshBuildFilesMapForBuildFileGuidList (System.Collections.Generic.Dictionary`2 mapForTarget, UnityEditor.iOS.Xcode.FileGUIDListBase list)
    UnityEditor.iOS.Xcode.PBXProject.RefreshAuxMaps ()
    UnityEditor.iOS.Xcode.PBXProject.ReadFromStream (System.IO.TextReader sr)
    UnityEditor.iOS.Xcode.PBXProject.ReadFromString (System.String src)
    UnityEditor.iOS.Xcode.PBXProject.ReadFromFile (System.String path)
    UnityEditor.iOS.PostProcessiPhonePlayer.BuildXCodeProject (UnityEditor.iOS.ProjectPaths paths, UnityEditor.iOS.IncludedFileList includedFiles, System.Collections.Generic.List`1 frameworks, System.String sdkVersion, System.String targetOS, System.String productName, Boolean useIl2Cpp, Boolean installInBuildFolder, Boolean dontCopyToBuildDir)
    UnityEditor.iOS.PostProcessiPhonePlayer.PostProcess (UnityEditor.iOS.iOSBuildPostprocessor pp, BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String stagingAreaDataManaged, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
    UnityEditor.iOS.iOSBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
    UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316)
    UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
     
  7. QuantumCalzone

    QuantumCalzone

    Joined:
    Jan 9, 2010
    Posts:
    262
    Any update on this bug? I'm getting it too
     
  8. povilas

    povilas

    Unity Technologies

    Joined:
    Jan 28, 2014
    Posts:
    427
    It's probably a different bug. Could you please test on Unity 5.0.1 and if the bug is still there, submit a bug with a reproduction project?
     
  9. Deleted User

    Deleted User

    Guest

    Thanks for reply. I'll test and post result!
     
  10. Fattie

    Fattie

    Joined:
    Jul 5, 2012
    Posts:
    476
    Exactly the same on 5.3 latest when you

    void OnApplicationPause(bool paused)
     
  11. ClearRoseOfWar

    ClearRoseOfWar

    Joined:
    Sep 6, 2015
    Posts:
    89
    I am currently getting it with this line:
    List<string> lst = stringToEdit.OfType<string> ().ToList ();

    This is used within an editor window. When I open the window, it gives this error. As soon as I open the script, press space (for whitespace) and save, it works fine... anyone know if this IS a bug? or could this be something I am doing wrong?

    Edit: I am using Version 5.3.1p2
     
    Last edited: Feb 2, 2016
  12. ClearRoseOfWar

    ClearRoseOfWar

    Joined:
    Sep 6, 2015
    Posts:
    89
    It was infact, something I was doing wrong.

    I didn't initialize my string correctly.
    Old:
    public string[] stringToEdit;

    New:
    public string[] stringToEdit = new string[2];
     
  13. gamer2300

    gamer2300

    Joined:
    Jan 16, 2013
    Posts:
    31
    ArgumentNullException: Argument cannot be null.
    Parameter name: source

    in 2017.1.1p2

    ArgumentNullException: Argument cannot be null.
    Parameter name: source
    System.Linq.Check.SourceAndPredicate (System.Object source, System.Object predicate)
    System.Linq.Enumerable.Single[CustomScriptAssembly] (IEnumerable`1 source, System.Func`2 predicate)
    UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScripts (EditorScriptCompilationOptions definesOptions, BuildTargetGroup platformGroup, BuildTarget platform) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilation.cs:354)
    UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface.CompileScripts (EditorScriptCompilationOptions definesOptions, BuildTargetGroup platformGroup, BuildTarget platform) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilationInterface.cs:80)

    this is second error
    ArgumentNullException: Argument cannot be null.
    Parameter name: source
    System.Linq.Check.SourceAndPredicate (System.Object source, System.Object predicate)
    System.Linq.Enumerable.Single[CustomScriptAssembly] (IEnumerable`1 source, System.Func`2 predicate)
    UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScripts (EditorScriptCompilationOptions definesOptions, BuildTargetGroup platformGroup, BuildTarget platform) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilation.cs:354)
    UnityEditor.Scripting.ScriptCompilation.EditorCompilation.TickCompilationPipeline (EditorScriptCompilationOptions options, BuildTargetGroup platformGroup, BuildTarget platform) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilation.cs:554)
    UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface.TickCompilationPipeline (EditorScriptCompilationOptions options, BuildTargetGroup platformGroup, BuildTarget platform) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilationInterface.cs:122)
     
    Qbit86 likes this.
  14. Qbit86

    Qbit86

    Joined:
    Sep 2, 2013
    Posts:
    487
    Any update on this Unity bug?
     
  15. dyshuk

    dyshuk

    Joined:
    Jan 5, 2017
    Posts:
    2
    Unity 2019.3, got this bug with FB lib. I've found a workaround. When you got this error. Start your Xcode project directly form XCode, it will build with error, but you should only set correct signing certificates in Signing & Capabilities tab.
    After that return to Unity and build ios, but this time with APPEND (not Replace).