Fix an exception problem when using VariousClass to hook

This commit is contained in:
2022-04-04 22:32:52 +08:00
parent c33a6f39a5
commit b28b2fc33c

View File

@@ -229,7 +229,7 @@ open class PackageParam(private var wrapper: PackageParamWrapper? = null) {
* @return [YukiHookCreater.Result] * @return [YukiHookCreater.Result]
*/ */
fun VariousClass.hook(isUseAppClassLoader: Boolean = true, initiate: YukiHookCreater.() -> Unit) = fun VariousClass.hook(isUseAppClassLoader: Boolean = true, initiate: YukiHookCreater.() -> Unit) =
get(if (isUseAppClassLoader) appClassLoader else null).hookClass.hook(isUseAppClassLoader, initiate) hookClass(if (isUseAppClassLoader) appClassLoader else null).hook(isUseAppClassLoader, initiate)
/** /**
* Hook 方法、构造类 * Hook 方法、构造类
@@ -244,12 +244,11 @@ open class PackageParam(private var wrapper: PackageParamWrapper? = null) {
* [VariousClass] 转换为 [HookClass] 并绑定到 [appClassLoader] * [VariousClass] 转换为 [HookClass] 并绑定到 [appClassLoader]
* @return [HookClass] * @return [HookClass]
*/ */
private val VariousClass.hookClass private fun VariousClass.hookClass(loader: ClassLoader? = null) = try {
get() = try { get(loader).hookClass
clazz.hookClass } catch (e: Throwable) {
} catch (e: Throwable) { HookClass(name = "VariousClass", throwable = Throwable(e.message))
HookClass(name = "VariousClass", throwable = Throwable(e.message)) }
}
/** /**
* 将目标 [Class] 绑定到 [appClassLoader] * 将目标 [Class] 绑定到 [appClassLoader]