0

背景

我正在开发一个需要在 7 到 16 的 API 级别上工作的 android 应用程序。

问题

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

  1. 清洁项目
  2. 运行项目
  3. “项目中的错误”>单击确定>再次运行项目
  4. 在任何 API 上运行良好

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

问题

有谁知道解决这个问题的方法,因为考虑到每次我想运行它时都必须这样做,这非常耗时。

4

2 回答 2

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
}
于 2012-08-20T13:58:20.180 回答
0

您可以在清单中添加:

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

然后任何介于 7 和 16 版本之间的 API 都将编译,因为您的目标是 16。

然后,如果您的设备为 7,则任何 API > 7 都将在您的设备上失败,但您已经说过您正在代码中对此采取措施。

于 2012-08-20T12:08:46.420 回答