PAGalaxyLab / YAHFA

Yet Another Hook Framework for ART
GNU General Public License v3.0
1.56k stars 350 forks source link

java.lang.ClassNotFoundException: lab.galaxy.yahfa.HookInfo #135

Closed pony5551 closed 3 years ago

pony5551 commented 3 years ago
public static void doHookDefault(ClassLoader patchClassLoader, ClassLoader originClassLoader) {
    try {
        **Class<?> hookInfoClass = Class.forName("lab.galaxy.yahfa.HookInfo", true, patchClassLoader);** //这行代码报错
        String[] hookItemNames = (String[]) hookInfoClass.getField("hookItemNames").get(null);
        for (String hookItemName : hookItemNames) {
            doHookItemDefault(patchClassLoader, hookItemName, originClassLoader);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

android 8 和android 10都试过了 patchClassLoader加载正常的

pony5551 commented 3 years ago

android 9也测试过,一样

rk700 commented 3 years ago

类没有找到,可能是dex没有正常加载,需要再确认下dex文件是否可读

pony5551 commented 3 years ago

类没有找到,可能是dex没有正常加载,需要再确认下dex文件是否可读

给过权限了,用的官方的代码没改动过跑的!

rk700 commented 3 years ago

在这一步hook都还没有开始,应该和hook本身无关,可以再对classloader再试下不同类的加载

pony5551 commented 3 years ago

问题解决了,要把原来的apk copy到app缓存文件夹再加载

Qi-Ming commented 3 years ago

请问怎么解决的,发生了类似问题Caused by: java.lang.ClassNotFoundException: Didn't find class "lab.galaxy.yahfa.HookInfo" on path: DexPathList[[zip file "/storage/emulated/0/demoPlugin-debug.apk"]

ghost commented 2 years ago

grant external storage permission to the app