能力值:
( LV2,RANK:10 )
|
-
-
2 楼
C[].class 试试呢
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
[QUOTE=米利托;1379940]C[].class 试试呢...[/QUOTE]
试过了不好使。。并且C[].class 直接就会报错的。。。C找不到。。。像这是数组的,就算是C类型,不是数组的,都不能这么写。。。求助啊 哭。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
[QUOTE=一升米雾;1380862]试过了不好使。。并且C[].class 直接就会报错的。。。C找不到。。。像这是数组的,就算是C类型,不是数组的,都不能这么写。。。求助啊 哭。。。。[/QUOTE]
没看到c是自定义的,那就用findclass方法把它找到
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
http://www.codefrom.com/c/62 也许能帮到你
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
用class.forname(),亲测没有问题
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
但是 是c数组啊。。。不是原始的c。。原始的c已经好使了。 我想用c数组 得怎么写啊?谢谢了
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
但是 是c数组啊。。。不是原始的c。。原始的c已经好使了。 我想用c数组 得怎么写啊?谢谢了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
大神请问 具体是怎么写的 我这里的是入参 是自定义类C的 数组格式的 得怎么hook??谢谢了
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
这里只写到自定义类c了 而我这里是C[] 数组格式的。。。还是不知道怎么写。。。
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
public static void main(String[] args) throws ClassNotFoundException {
Class clazz = Class.forName("[I");
System.out.println(clazz.getName());
clazz = Class.forName("[[[[Ljava.lang.String;");
System.out.println(clazz.getName());
}
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
[QUOTE=zerofile;1381938]public static void main(String[] args) throws ClassNotFoundException {
Class clazz = Class.forName("[I");
System.out.println(clazz.ge...[/QUOTE]
大神,还是不行,这个apk是分包的。。要用的C类在第二个dex包中。。用for calss的话加载器不对
Class<?> hookMessageListenerClass= lpparam.classLoader.loadClass("[Lcom.test.hehe.C");
我这么写的报
java.lang.ClassNotFoundException: Didn't find class "[Lcom.test.hehe.C"
这个错误,如果写成Class<?> hookMessageListenerClass= lpparam.classLoader.loadClass("com.test.hehe.C");是可以找到的。。。。
关键是 我想要数组格式啊。。。大神帮忙再看看吧。。我想要数组格式的话 得怎么再改改呢??
|
能力值:
( LV3,RANK:20 )
|
-
-
13 楼
forName有一个重载版本,指定clazzload就好了.
forName(clazzName, false, clazzLoad)
第二个参数是,活取clazz时候初始化,一般用false就行了.
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
直接字符串"C[]"试试
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
不用这么麻烦字符串就行如:"aaa[]",已试过
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
[QUOTE=Kidstart;1382534]直接字符串"C[]"试试[/QUOTE]
这个我早就试过了 根本不行
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
[QUOTE=crazywk;1382797]不用这么麻烦字符串就行如:"aaa[]",已试过[/QUOTE]
兄弟。起码得带包名,不带包名的更不行。你那个测试是就一个包,并且包里就一个aaa类,当你有多个包,包里有同名类的时候,你再试试。。呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
大神,我尝试了各种写法,还是不行,一直报java.lang.ClassNotFoundException:类找不到
我包名叫 com.test.abc 我的自定义类名叫C,
这里的clazzName 我尝试用"[Lcom.test.abc.C;","[Lcom.test.abc.C","[[[[Lcom.test.abc.C;"这3种格式,都报类找不到。大神啊 再给指点下吧。。
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
直接object岂不更好
其实,为什么用类的数组,印象中基本类型数组使用比较多,类数组基本都是ArrayList之类的方式
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
非要我贴代码上来吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
"aaa.bbb.ccc.ddd[]"不不行了么
你这个应该就是"com.test.abc.C[]"
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
[QUOTE=crazywk;1382902]"aaa.bbb.ccc.ddd[]"不不行了么
你这个应该就是"com.test.abc.C[]"[/QUOTE]
不好使 。。。这种是我第一个就试验了的。。。我都快疯了。。尝试各种了。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
报错啊 报该方法不存在啊
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
遇到了同样的问题
|
能力值:
( LV3,RANK:20 )
|
-
-
25 楼
[QUOTE=zerofile;1381938]public static void main(String[] args) throws ClassNotFoundException {
Class clazz = Class.forName("[I");
System.out.println(clazz.ge...[/QUOTE]
不知道大家有没有解决这个问题,我研究了一天,总算搞明白了,[I 这个是怎么来的。
首先.class的意思是类的类型,明白这个以后,接下来就找数组的类类型了。以下是我的测试代码:
String[] stringArray = new String[]{"1","2"};
System.out.println(stringArray.getClass().isArray()); // true
System.out.println(stringArray.getClass().getName()); //class java.lang.String
int[] intArray = new int[]{1,2};
System.out.println(intArray.getClass().isArray()); // true
System.out.println(intArray.getClass().getName()); //int
byte[] byteArray = new byte[]{'a','b'};
System.out.println(byteArray.getClass().isArray()); // true
System.out.println(byteArray.getClass().getName()); //byte
Base64[] base64 = new Base64[]{};
System.out.println(base64.getClass().isArray()); // true
System.out.println(base64.getClass().getName()); //base64
MainActivity[] ativity = new MainActivity[]{};
System.out.println(ativity.getClass().isArray()); // true
System.out.println(ativity.getClass().getName()); //ativity
-------------------------
结果为:
I/System.out(4247): true
I/System.out(4247): [Ljava.lang.String;
I/System.out(4247): true
I/System.out(4247): [I
I/System.out(4247): true
I/System.out(4247): [B
I/System.out(4247): true
I/System.out(4247): [Lcom.example.testclasstype.Base64;
I/System.out(4247): true
I/System.out(4247): [Lcom.example.testclasstype.MainActivity;
希望对大家有帮助!
|
|
|