Android - 无法访问**包android.telephony **
问题描述:
下的一些类我试图访问存储在android.telephony
包使用反射的类,但对于一些类我得到ClassNotFoundException
。Android - 无法访问**包android.telephony **
任何人都可以告诉我为什么有些类可以访问,有些甚至不是这些类驻留在同一个包中?
例: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中,以及您所使用的手机或模拟器e使用没有Android 5.1。
这就是反射应该如何工作!如果一个班级不存在,则抛出ClassNotFoundException
。
我已经在同一个存储库下载了android 22和21的源代码,我认为GIT已经将它们合并在一起。这造成了混乱。 – DCoder 2015-03-31 14:20:41
哦,我明白了:)你是否需要它们来制作两个独立的版本? – 2015-03-31 14:25:08
号刚刚删除22;) – DCoder 2015-03-31 14:50:32