Java Android-无法访问**程序包Android.telephony下的某些类**
我试图使用反射访问存储在android.telephony包下的类,但对于某些类,我得到了Java Android-无法访问**程序包Android.telephony下的某些类**,java,android,reflection,android-source,telephony,Java,Android,Reflection,Android Source,Telephony,我试图使用反射访问存储在android.telephony包下的类,但对于某些类,我得到了ClassNotFoundException 有人能告诉我为什么有些类可以访问,而有些则不能,即使这些类位于同一个包中 例如:公共类TelephonyManager可以使用反射进行访问,如下所示 try { Class<?> manager1 = Class.forName("android.telephony.TelephonyManager"); } catch (ClassNotFound
ClassNotFoundException
有人能告诉我为什么有些类可以访问,而有些则不能,即使这些类位于同一个包中
例如:公共类TelephonyManager
可以使用反射进行访问,如下所示
try {
Class<?> manager1 = Class.forName("android.telephony.TelephonyManager");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
这两个类属于同一个软件包android.telephony
可能是因为它刚刚添加到API 22中,并且您使用的手机或模拟器没有android 5.1
这就是反射的工作原理!如果一个类不存在,就会抛出
ClassNotFoundException
。我已经在同一个存储库中下载了android 22和21的源代码,我认为GIT已经将它们合并在一起了。这引起了混乱。哦,我明白了:)制作两个独立的版本需要它们吗?不,刚刚删除了22;)
try {
Class<?> subscriptionManager = Class.forName("android.telephony.SubscriptionManager");
//Throwing error
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}