From 3eb67421cdb519cb80ce28158567b35cac99a2a2 Mon Sep 17 00:00:00 2001 From: Ethan Zeng Date: Mon, 17 Feb 2025 11:21:35 +0800 Subject: [PATCH] Fix NullReferenceException on Android at Startup --- SukiUI/Utilities/Effects/SukiEffect.cs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/SukiUI/Utilities/Effects/SukiEffect.cs b/SukiUI/Utilities/Effects/SukiEffect.cs index ee1729762..02708a505 100644 --- a/SukiUI/Utilities/Effects/SukiEffect.cs +++ b/SukiUI/Utilities/Effects/SukiEffect.cs @@ -68,19 +68,13 @@ public static SukiEffect FromEmbeddedResource(string shaderName) shaderName = shaderName.ToLowerInvariant(); if (!shaderName.EndsWith(".sksl")) shaderName += ".sksl"; - var assembly = Assembly.GetEntryAssembly(); - var resName = assembly!.GetManifestResourceNames() + var assembly = Assembly.GetEntryAssembly() ?? Assembly.GetExecutingAssembly(); + var resName = assembly.GetManifestResourceNames() .FirstOrDefault(x => x.ToLowerInvariant().Contains(shaderName)); - if (resName is null) - { - assembly = Assembly.GetExecutingAssembly(); - resName = assembly.GetManifestResourceNames() - .FirstOrDefault(x => x.ToLowerInvariant().Contains(shaderName)); - } - if (resName is null) throw new FileNotFoundException( $"Unable to find a file with the name \"{shaderName}\" anywhere in the assembly."); + using var tr = new StreamReader(assembly.GetManifestResourceStream(resName)!); return FromString(tr.ReadToEnd()); }