Skip to content

Commit b25279c

Browse files
committed
Update RefInvoker
1 parent 20d4d62 commit b25279c

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

PluginCore/src/com/plugin/core/proxy/MethodHandler.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ public synchronized Object invoke(Object proxy, Method method, Object[] args) th
3131

3232
Object invokeResult = null;
3333
if (before == null) {
34-
method.setAccessible(true);
34+
if (!method.isAccessible()) {
35+
method.setAccessible(true);
36+
}
3537
invokeResult = method.invoke(mTarget, args);
3638
}
3739

PluginCore/src/com/plugin/util/RefInvoker.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ public static Object invokeMethod(Object target, Class clazz, String methodName,
3434
try {
3535
//LogUtil.e("Method", methodName);
3636
Method method = clazz.getDeclaredMethod(methodName, paramTypes);
37-
method.setAccessible(true);
37+
if (!method.isAccessible()) {
38+
method.setAccessible(true);
39+
}
3840
return method.invoke(target, paramValues);
3941
} catch (SecurityException e) {
4042
e.printStackTrace();
@@ -54,7 +56,9 @@ public static Object invokeMethod(Object target, Class clazz, String methodName,
5456
public static Object getFieldObject(Object target, Class clazz, String fieldName) {
5557
try {
5658
Field field = clazz.getDeclaredField(fieldName);
57-
field.setAccessible(true);
59+
if (!field.isAccessible()) {
60+
field.setAccessible(true);
61+
}
5862
return field.get(target);
5963
} catch (SecurityException e) {
6064
e.printStackTrace();
@@ -108,15 +112,19 @@ public static void setFieldObject(Object target, String className, String fieldN
108112
public static void setFieldObject(Object target, Class clazz, String fieldName, Object fieldValue) {
109113
try {
110114
Field field = clazz.getDeclaredField(fieldName);
111-
field.setAccessible(true);
115+
if (!field.isAccessible()) {
116+
field.setAccessible(true);
117+
}
112118
field.set(target, fieldValue);
113119
} catch (SecurityException e) {
114120
e.printStackTrace();
115121
} catch (NoSuchFieldException e) {
116122
// try supper for Miui, Miui has a class named MiuiPhoneWindow
117123
try {
118124
Field field = clazz.getSuperclass().getDeclaredField(fieldName);
119-
field.setAccessible(true);
125+
if (!field.isAccessible()) {
126+
field.setAccessible(true);
127+
}
120128
field.set(target, fieldValue);
121129
} catch (Exception superE) {
122130
e.printStackTrace();

0 commit comments

Comments
 (0)