Android兼容性构建问题

时间:2012-08-20 11:56:09

标签: android android-compatibility

背景

我正在开发一个需要处理7到16级API级别的Android应用程序。

问题

每当我去构建我的项目时,这是我必须经历的过程。

  1. 清理项目
  2. 运行项目
  3. “项目中的错误”>点击OK>再次运行项目
  4. 在任何API
  5. 上运行正常

    我认为问题是由于我包含了API<的ActionBar代码(例如ActionBar)。 3.0不能使用,但我正在检查它并运行其他东西,如果是这样的话。

    问题

    有没有人知道这种方法,因为考虑到每次我想要运行它都需要这样做,这是非常耗时的。

2 个答案:

答案 0 :(得分:1)

我想您正在使用Eclipse进行开发。您可以按如下方式注释违规方法:

private final int VERSION = android.os.Build.VERSION.SDK_INT;
private File myDir;
// some stuff here
@SuppressLint("NewApi")
private void doSomething() {
    if (VERSION < 8) {
        // Uses a method available since API 1
        myDir = Environment.getExternalStorageDirectory();
     else {
        // Uses a method available since API 8
        myDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
    }
    // Do more stuff
}

答案 1 :(得分:0)

您可以添加清单:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="16" />

然后,编译7到16版本之间的任何API都会编译,因为你的目标是16。

然后,如果您的设备是7,任何API&gt; 7将在您的设备上失败,但您已经说过您正在对您的代码中采取措施。