diff --git a/library/src/main/java/org/lsposed/hiddenapibypass/HiddenApiBypass.java b/library/src/main/java/org/lsposed/hiddenapibypass/HiddenApiBypass.java index cc8f7ce..cc067aa 100644 --- a/library/src/main/java/org/lsposed/hiddenapibypass/HiddenApiBypass.java +++ b/library/src/main/java/org/lsposed/hiddenapibypass/HiddenApiBypass.java @@ -140,10 +140,11 @@ public static Object newInstance(@NonNull Class clazz, Object... initargs) th "(" + Arrays.stream(stub.getParameterTypes()).map(Type::getTypeName).collect(Collectors.joining()) + ")"); if ("".equals(stub.getName())) { unsafe.putLong(ctor, methodOffset, method); - unsafe.putObject(ctor, classOffset, clazz); Class[] params = ctor.getParameterTypes(); - if (Helper.checkArgsForInvokeMethod(params, initargs)) + if (Helper.checkArgsForInvokeMethod(params, initargs)) { + unsafe.putObject(ctor, classOffset, clazz); return ctor.newInstance(initargs); + } } } throw new NoSuchMethodException("Cannot find matching constructor");