Fix Android N (API 24) Activity Proxy problem in AppParasitics, IActivityManagerProxy

This commit is contained in:
2022-10-23 05:27:58 +08:00
parent 70f9a21a50
commit 08ae5340bf
2 changed files with 2 additions and 2 deletions

View File

@@ -334,7 +334,7 @@ internal object AppParasitics {
}.getOrNull()?.also { default ->
SingletonClass.field { name = "mInstance" }.ignored().result {
get(default).apply { any()?.also { set(IActivityManagerProxy.wrapper(IActivityManagerClass, it)) } }
ActivityTaskManagerClass.field { name = "IActivityTaskManagerSingleton" }.ignored().get().any().also { singleton ->
ActivityTaskManagerClass?.field { name = "IActivityTaskManagerSingleton" }?.ignored()?.get()?.any()?.also { singleton ->
SingletonClass.method { name = "get" }.ignored().get(singleton).call()
get(singleton).apply { any()?.also { set(IActivityManagerProxy.wrapper(IActivityTaskManagerClass, it)) } }
}

View File

@@ -52,7 +52,7 @@ internal class IActivityManagerProxy private constructor(private val baseInstanc
* @param instance 代理的目标实例
* @return [Any] 代理包装后的实例
*/
internal fun wrapper(clazz: Class<*>, instance: Any) =
internal fun wrapper(clazz: Class<*>?, instance: Any) =
Proxy.newProxyInstance(AppParasitics.baseClassLoader, arrayOf(clazz), IActivityManagerProxy(instance))
}