【问题标题】:Setting up Android code for different runtimes为不同的运行时设置 Android 代码
【发布时间】:2010-10-18 12:59:29
【问题描述】:

我正在开发一个应该在 Android 1.5 及更高版本的设备上运行的 Android 应用程序。我正在使用RawContacts.CONTENT_URI 枚举在我的应用程序子类中注册ContentObserver。现在,Eclair 中引入了 RawContacts,并在运行时间小于 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。

如何为不同的运行时设置我的代码?

【问题讨论】:

    标签: java android


    【解决方案1】:

    我认为您需要使用反射来获得所需的枚举

    http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html

    因为字节码对 2.0 之前的设备无效,因为它命名了一个不存在的类。

    【讨论】:

      猜你喜欢
      • 2021-06-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      相关资源
      最近更新 更多