mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 09:45:19 +08:00
Fix Java "void" Type Class not found problem in Android 7.0 (API 24) or latest
This commit is contained in:
@@ -40,6 +40,7 @@ import com.highcapable.yukihookapi.hook.core.finder.members.MethodFinder
|
|||||||
import com.highcapable.yukihookapi.hook.core.finder.tools.ReflectionTool
|
import com.highcapable.yukihookapi.hook.core.finder.tools.ReflectionTool
|
||||||
import com.highcapable.yukihookapi.hook.core.finder.type.factory.*
|
import com.highcapable.yukihookapi.hook.core.finder.type.factory.*
|
||||||
import com.highcapable.yukihookapi.hook.type.java.AnyClass
|
import com.highcapable.yukihookapi.hook.type.java.AnyClass
|
||||||
|
import com.highcapable.yukihookapi.hook.type.java.UnitType
|
||||||
import com.highcapable.yukihookapi.hook.xposed.bridge.status.YukiHookModuleStatus
|
import com.highcapable.yukihookapi.hook.xposed.bridge.status.YukiHookModuleStatus
|
||||||
import com.highcapable.yukihookapi.hook.xposed.parasitic.AppParasitics
|
import com.highcapable.yukihookapi.hook.xposed.parasitic.AppParasitics
|
||||||
import dalvik.system.BaseDexClassLoader
|
import dalvik.system.BaseDexClassLoader
|
||||||
@@ -180,16 +181,16 @@ infix fun Class<*>?.notImplements(other: Class<*>?) = implements(other).not()
|
|||||||
* @return [Class]
|
* @return [Class]
|
||||||
*/
|
*/
|
||||||
fun Class<*>.toJavaPrimitiveType() =
|
fun Class<*>.toJavaPrimitiveType() =
|
||||||
(name.replace(Unit.toString(), "void")
|
if (name != Unit.toString() && name != "java.lang.Void" && name != "void")
|
||||||
.replace("java.lang.Void", "void")
|
(name.replace("java.lang.Boolean", "boolean")
|
||||||
.replace("java.lang.Boolean", "boolean")
|
.replace("java.lang.Integer", "int")
|
||||||
.replace("java.lang.Integer", "int")
|
.replace("java.lang.Float", "float")
|
||||||
.replace("java.lang.Float", "float")
|
.replace("java.lang.Double", "double")
|
||||||
.replace("java.lang.Double", "double")
|
.replace("java.lang.Long", "long")
|
||||||
.replace("java.lang.Long", "long")
|
.replace("java.lang.Short", "short")
|
||||||
.replace("java.lang.Short", "short")
|
.replace("java.lang.Character", "char")
|
||||||
.replace("java.lang.Character", "char")
|
.replace("java.lang.Byte", "byte")).toClass()
|
||||||
.replace("java.lang.Byte", "byte")).toClass()
|
else UnitType
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过字符串类名转换为 [loader] 中的实体类
|
* 通过字符串类名转换为 [loader] 中的实体类
|
||||||
|
@@ -148,7 +148,7 @@ val DoubleType get() = "double".toClass()
|
|||||||
* 这是 Java 原始类型 (Primitive Type) - 它在字节码中的关键字为 "void"
|
* 这是 Java 原始类型 (Primitive Type) - 它在字节码中的关键字为 "void"
|
||||||
* @return [Class]
|
* @return [Class]
|
||||||
*/
|
*/
|
||||||
val UnitType get() = "void".toClass()
|
val UnitType get() = Void.TYPE ?: "void".toClass()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得 [Any] 类型
|
* 获得 [Any] 类型
|
||||||
|
Reference in New Issue
Block a user