我正在开发一款应该在Android 1.5及更高版本的设备上运行的Android应用程序。我使用RawContacts.CONTENT_URI
枚举在我的应用程序子类中注册ContentObserver
。现在,RawContacts在Eclair中引入并在运行时小于2.0的Android设备上运行此代码,给出了java.lang.VerifyError。对于旧设备,我必须使用Contacts.CONTENT_URI
。
所以为了解决这个问题,我在代码中添加了以下内容:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR){
uri = android.provider.ContactsContract.RawContacts.CONTENT_URI;
}
else{
uri = android.provider.Contacts.CONTENT_URI;
}
我还在收到java.lang.VerifiyErrors。
如何为不同的运行时设置代码?
答案 0 :(得分:1)
我认为您需要使用反射来获取所需的枚举
http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html
由于字节码对2.0之前的设备无效,因为它命名了一个不存在的类。