1

所以我前段时间写了一个Android应用程序,我正在尝试更新它。我想在代码部分中构建,如果他们使用的手机低于 3.0,则以一种方式做某事,否则以另一种方式做。

我的构建目标在 project.properties 文件中设置为 11,但它似乎仍然可以在 < 3.0 的 Android 版本上运行?这是正常的吗?我会在某个时候看到一些崩溃吗?一切似乎都在工作...我的 minSDKVersion 是 8,但是当我在 Android 2.3.3 上使用 Android 3.0 代码运行此应用程序时会发生这种情况?

4

3 回答 3

1

它通常可以在 API 级别 8 的平台上正常运行,因为这就是您的minSdkVersion. 但是,如果您尝试调用在 11 级或更高级别引入的任何 API,它将在早期(11 之前)平台上崩溃。为避免这种情况,您应该在调用任何此类方法之前在运行时检查操作系统版本。有关如何执行此操作的建议,请参阅以编程方式检索 Android API 版本。

于 2012-06-01T15:26:12.943 回答
1

在进行此类开发时,通常最好从较低的 API 开始工作。每次完成 API 的工作版本时,请确保它在升级到下一个级别之前编译没有错误。如果你的 targetSdkVersion 和你的 minSdkVersion 不同,清单会警告你;但是,这主要是为了确保您小心不要从更高的 API 调用方法。一个有用的解决方法可能是:

    private static int getApiLevel() {
            return Integer.parseInt(android.os.Build.VERSION.SDK);
    }
于 2012-06-01T16:35:18.157 回答
0

我想我有一个愚蠢的时刻。如果我将 minSDK 设置为 8,那么任何比 8 更新的都可以正常工作。如果我将构建目标设置为 11,然后在 SDK 早于 11 的手机上运行任何高于 8 的代码之前进行检查,那么这应该涵盖所有基础。

当我弄乱 targetSDK 和 minSDK 时,我有点困惑

感谢您的评论。

于 2012-06-04T15:44:17.207 回答