2

我的应用程序需要针对 API 级别 7 及更高级别,但是我想在新版本可用时有选择地使用新版本的功能。例如,我可能有这样的代码:

if (Build.VERSION.SDK_INT >= 8) {
    base64String = android.util.Base64.encodeToString(bytes, android.util.Base64.DEFAULT);
} else {
    base64String = MyCustomBase64.encodeBytes(bytes);
}

但是,当我在 Eclipse 中将项目配置为以“Android 2.1”(API 7)为目标时,找不到类 android.util.Base64,因为它仅适用于 API 8 及更高版本。然后 Eclipse 将该行指定为编译错误(红色“x”),因为该类不在构建路径上。

我的问题:在使用 Eclipse 进行 Android 开发时,处理此类开发(支持目标环境中实际上不存在的功能)的“正确”方式是什么?

我总是可以将 Eclipse 中的目标更改为 2.2 (API 8),但这也不理想。它造成了这样一种情况,即我可能会在不知不觉中使用仅存在于 8+ 中的功能,而 Eclipse 不会通知该事实。

4

1 回答 1

1

你已经回答了你自己的问题。

我总是可以将 Eclipse 中的目标更改为 2.2 (API 8)

这就是它的完成方式。您仍然可以将清单中的 minSDK/targetSDK 设置为 7。AFAIK 您只需要使用 if 语句,就像您在任何来自更高 API 级别的代码中显示的那样。

于 2012-06-15T21:32:51.773 回答