在Android中使用反射(不清楚)

移动开发 码拜 8年前 (2016-03-25) 1103次浏览
本人想调用一个静态内部类中的一个方法,但是不能得到它?希望能帮帮忙
就是这个静态内部类     :      android.os.Environment.UserEnvironment

Class<?> class_UserEnvironment = Class.forName("android.os.Environment")
                               .getDeclaredClasses()[0];
 Method method_getExternalDirs = class_UserEnvironment
                    .getMethod("getExternalDirs", null);

异常为:

java.lang.NoSuchMethodException: getExternalDirs []
    at java.lang.Class.getMethod(Class.java:664)
    at java.lang.Class.getMethod(Class.java:643)
    at c508.yangming.mysdcard.MySDCard.getSDCardPaths(MySDCard.java:231)
    at c508.yangming.mysdcard.ActivityMain.onCreate(ActivityMain.java:15)
    at android.app.Activity.performCreate(Activity.java:5990)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2486)
    at android.app.ActivityThread.access$800(ActivityThread.java:164)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1358)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:147)
    at android.app.ActivityThread.main(ActivityThread.java:5513)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:971)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:766)

本人的问题是本人使用反射错了吗?——本人不知道哪里错了
或是反射不能完成这个动作?
或是存在本人不知道的假设?

解决方案

2

本人不知道该怎么回答你这个问题

38

UserEnvironment是Environment的内部类?中间不要用点连接,用$符号试试

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明在Android中使用反射(不清楚)
喜欢 (0)
[1034331897@qq.com]
分享 (0)