Fix "androidx.lifecycle.ReportFragment" sequence problem in ModuleClassLoader

This commit is contained in:
2022-09-30 00:42:32 +08:00
parent 280994100d
commit da8839d147

View File

@@ -52,8 +52,8 @@ internal class ModuleClassLoader private constructor() : ClassLoader(AppParasiti
override fun loadClass(name: String, resolve: Boolean): Class<*> { override fun loadClass(name: String, resolve: Boolean): Class<*> {
if (YukiHookBridge.hasXposedBridge.not()) return AppParasitics.baseClassLoader.loadClass(name) if (YukiHookBridge.hasXposedBridge.not()) return AppParasitics.baseClassLoader.loadClass(name)
return YukiHookAppHelper.currentApplication()?.classLoader?.let { loader -> return YukiHookAppHelper.currentApplication()?.classLoader?.let { loader ->
runCatching { return@let AppParasitics.baseClassLoader.loadClass(name) }
runCatching { if (name == "androidx.lifecycle.ReportFragment") return@let loader.loadClass(name) } runCatching { if (name == "androidx.lifecycle.ReportFragment") return@let loader.loadClass(name) }
runCatching { return@let AppParasitics.baseClassLoader.loadClass(name) }
runCatching { AppParasitics.baseClassLoader.loadClass(name) }.getOrNull() ?: loader.loadClass(name) runCatching { AppParasitics.baseClassLoader.loadClass(name) }.getOrNull() ?: loader.loadClass(name)
} ?: super.loadClass(name, resolve) } ?: super.loadClass(name, resolve)
} }