SceneManager.LoadScene and Destroy() in Build

Hello, I have a problem.
On the scene I have a script in which I have Texture2D with a texture in it. Then in Start() I use Destroy() on this Texture2D. (I do this to free up memory, but I need this texture at startup. The reason is irrelevant.)
When reloading the scene using SceneManager.LoadScene, Textrue2D is empty.
Loading the scene a second time using SceneManager.LoadScene, Texture2D has a texture.
And from now on, every time I load a scene, Texture2D is alternately empty and then filled.

And now my question - How to make Texture2D always have this texture?

Everything happens on Android, maybe that’s the reason? Everything works fine in the editor.

Reference it somewhere independant of a scene. Such as a DontDestroyOnLoad game object, scriptable object, or in a static context.

I mean “DontDestroyOnLoad game object” will make it in RAM and I use Destroy() to remove it from RAM, but scriptable object maybe will work. Still, it isnt a real solution to problem. I could just load scene two times, but why it happends like this?