Android - 无法访问 **包 android.telephony** 下的一些 类

Android - Unable to access some classes under **package android.telephony**

我正在尝试使用反射访问存储在 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

可能是因为 SubscriptionManager 是在 API 22 中添加的,而您使用的 phone 或模拟器没有 Android 5.1.

反射应该就是这样工作的!如果 class 不存在,则抛出 ClassNotFoundException