【问题标题】:Android - Unable to access some classes under **package android.telephony**Android - 无法访问 **package android.telephony** 下的某些类
【发布时间】:2015-03-31 13:55:56
【问题描述】:

我正在尝试使用反射访问存储在 android.telephony 包下的类,但对于某些类,我得到了 ClassNotFoundException

谁能告诉我为什么有些类可以访问,而有些则不能,即使这些类驻留在同一个包中?

例如:public class TelephonyManager 可以使用反射访问,如下所示

try {
Class<?> manager1 = Class.forName("android.telephony.TelephonyManager");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}

public class SubscriptionManager 无法使用反射访问

try {
Class<?> subscriptionManager = Class.forName("android.telephony.SubscriptionManager");
//Throwing error
} catch (ClassNotFoundException e1) {
e1.printStackTrace(); 
}

两个类属于同一个包android.telephony

【问题讨论】:

    标签: java android reflection android-source telephony


    【解决方案1】:

    可能是因为SubscriptionManager刚刚添加到API 22中,而您使用的手机或模拟器没有Android 5.1。

    这就是反射应该如何工作的!如果某个类不存在,则抛出 ClassNotFoundException

    【讨论】:

    • 我已经在同一个存储库中下载了 android 22 和 21 的源代码,我认为 GIT 已将它们合并在一起。这引起了混乱。
    • 哦,我明白了 :) 你需要它们来制作两个单独的版本吗?
    • 没有。刚刚删除 22 ;)
    猜你喜欢
    • 2022-12-21
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2012-05-25
    相关资源
    最近更新 更多