Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NullReferenceException on Unity 2019.4.1 #30

Closed
malody2014 opened this issue Nov 21, 2020 · 6 comments
Closed

NullReferenceException on Unity 2019.4.1 #30

malody2014 opened this issue Nov 21, 2020 · 6 comments
Labels

Comments

@malody2014
Copy link

Description of the bug

NullReferenceException: Object reference not set to an instance of an object
SimpleFileBrowser.RecycledListView.UpdateList () (at Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs:55)
SimpleFileBrowser.FileBrowser.RefreshFiles (System.Boolean pathChanged) (at Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs:1420)
SimpleFileBrowser.FileBrowser.OnShowHiddenFilesToggleChanged () (at Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs:1071)
UnityEngine.Events.InvokableCall.Invoke () (at <4eca0aa85b9643a199169bb7e91fc8d3>:0)
UnityEngine.Events.UnityEvent`1[T0].Invoke (T0 arg0) (at <4eca0aa85b9643a199169bb7e91fc8d3>:0)
UnityEngine.UI.Toggle.Rebuild (UnityEngine.UI.CanvasUpdate executing) (at D:/unity/2019.4.0f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Toggle.cs:130)
UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate () (at D:/unity/2019.4.0f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/CanvasUpdateRegistry.cs:177)
UnityEngine.UI.ScrollRect:LateUpdate() (at D:/unity/2019.4.0f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/ScrollRect.cs:805)

Reproduction steps

FileBrowser.ShowLoadDialog((paths => {
                //todo
}), () => {
                //todo
});

Platform specs

Please provide the following info if this is a Unity 3D repository.

  • Unity version: 2019.4.1
  • Platform: Windows
  • How did you download the plugin: Asset Store version 1.3.6

Additional info

Please check Logcat (Android) or Xcode console (iOS) for any meaningful error messages and include them here.

@malody2014 malody2014 added the bug label Nov 21, 2020
@yasirkula
Copy link
Owner

yasirkula commented Nov 22, 2020

The closest setup I have is Unity 2019.4.0f1 on Windows and I can't reproduce this issue with these reproduction steps. And frankly, it should be impossible to encounter this Issue. Let's see why:

which is inside here:

Awake is called before any other functions. If there was an exception that interrupted Awake, this error would be possible but you didn't mention any in the Issue description.

Are there any other steps that you didn't mention in Reproduction steps? You should create a new Unity project, import the plugin there and take note of every step you take until you can reproduce this issue and report all of these steps in Reproduction steps.

@artur-ag
Copy link

I'm finding the same error with version 1.4.1, running in Unity 2020.2.1f1 on Windows 10.
It happens one single time, when the scene starts, even before I invoke the file browser. But after that, everything works as expected: I can open the browser, select a file, etc.

@yasirkula from what you say, it makes sense that it happens, because during the start of my scene, I don't invoke any file browser, so the Awake method doesn't have a chance to run. But somehow Unity itself is invoking something that runs SimpleFileBrowser.FileBrowser.OnShowHiddenFilesToggleChanged.

I already have an EventSystem in my scene, so I disabled the EventSystem gameobject inside SimpleFileBrowserCanvas. I didn't try it in an empty scene without an existing EventSystem... could that be it? The already-existing EventSystem is triggering the toggle changed event?

@artur-ag
Copy link

I restarted Unity and now I can't reproduce the bug anymore... I'm not sure what fixed it, because I didn't change anything in my setup. Maybe it was because I imported a new version of Runtime File Browser without deleting all the files from the previous one.

@yasirkula
Copy link
Owner

yasirkula commented Jan 12, 2021

I don't think it is related to EventSystem. Do you have an instance of SimpleFileBrowserCanvas object in your scene? If so, is it active? Did you modify it in any way?

@artur-ag
Copy link

artur-ag commented Jan 13, 2021

Not during the start of the scene, no, it gets created when I invoke the file browser by clicking on a UI button in my own Canvas. But when I was getting the error yesterday, I can't remember if the SimpleFileBrowserCanvas object was there from the beginning or not, and now I can't reproduce the exception.

I did two changes in the SimpleFileBrowserCanvas: I disabled the EventSystem, because I already have one in my scene, and changed the CanvasScaler reference resolution.

EDIT: I managed to reproduce the bug!! It happened while I started the game in the editor while having the SimpleFileBrowserCanvas prefab opened in Prefab mode. Here are the steps to reproduce it in Unity 2020.2.1f1:

  1. Create an empty scene (I tried with my existing scene and with an empty one, and it happened both times).
  2. Double-click SimpleFileBrowserCanvas.prefab in the Project panel. This will open it in Prefab mode, and makes the scene panel background blue.
  3. With the prefab still open, press Play.
  4. The following exception occurs right after starting:
NullReferenceException: Object reference not set to an instance of an object
SimpleFileBrowser.RecycledListView.UpdateList () (at Assets/Plugins/SimpleFileBrowser/Scripts/SimpleRecycledListView/RecycledListView.cs:55)
SimpleFileBrowser.FileBrowser.RefreshFiles (System.Boolean pathChanged) (at Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs:1621)
SimpleFileBrowser.FileBrowser.OnShowHiddenFilesToggleChanged () (at Assets/Plugins/SimpleFileBrowser/Scripts/FileBrowser.cs:1266)
UnityEngine.Events.InvokableCall.Invoke () (at <e414e10bfe5f45729ff122f3359de21b>:0)
UnityEngine.Events.UnityEvent`1[T0].Invoke (T0 arg0) (at <e414e10bfe5f45729ff122f3359de21b>:0)
UnityEngine.UI.Toggle.Rebuild (UnityEngine.UI.CanvasUpdate executing) (at C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Toggle.cs:130)
UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate () (at C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/CanvasUpdateRegistry.cs:182)
UnityEngine.UI.ScrollRect:LateUpdate() (at C:/Program Files/Unity/Hub/Editor/2020.2.1f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/ScrollRect.cs:808)

I must've had the prefab mode open yesterday and didn't realize it.

@yasirkula
Copy link
Owner

Awesome! I was able to reproduce the error on 2018.4, too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants