使用Xposed Hook多DEX的應用時,Xposed會拋ClassNotFound的異常,原因是它只會在classes.dex查找類。以下官方不完美解決辦法,參考 Github上的 #30 issue.
public class RedClock implements IXposedHookLoadPackage { public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable { final LoadPackageParam llpm = lpparam; if (!lpparam.packageName.equals("com.xxx.xxx.xxx")) return; findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { findAndHookMethod("com.xxx.xxx.log.Logger", llpm.classLoader, "easylog", String.class, String.class, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { //取easylog的2個參數 String log_tag = (String) param.args[0]; String log_content = (String) param.args[1]; } }); //findAndHookMethod } }); //findAndHookMethod } }