3

一些 Java 库方法,例如在其文档中DecimalFormat.setRoundingMode有一个@since 1.6条目。

/**
...
 * @since 1.6
 */
public void setRoundingMode(RoundingMode roundingMode) {
...
}

当我尝试使用在 Android 4.2.2 和 JDK 1.6 下编译的此方法并将我的android:minSdkVersion设置为 7 时,如图所示,

myNumberFormat.setRoundingMode(RoundingMode.DOWN);

Android LintsetRoundingMode为我用红色下划线告诉我

Call requires API level 9 (current min is 7): java.text.NumberFormat#setRoundingMode

Android API如何以及为什么可以限制我可以使用和不能使用的 Java 库方法?我清理了我的项目,Lint 错误消失了。我的项目编译没有错误,并在运行 Android 2.2.3 (API 8) 的设备上运行。
我的程序崩溃了:

05-09 11:32:38.436: E/AndroidRuntime(2074): Caused by: java.lang.NoSuchMethodError: java.text.NumberFormat.setRoundingMode

Android 文档确认在 API 级别 9 中添加了setRoundingModecopySign等。这是否意味着运行 Android OS 级别 8 及以下的设备是专门使用 JDK 1.5 编译/构建的?

我可以理解这一点。但是 Android 支持库(或其他任何东西)不可能允许我们使用这些方法吗?

与 Android 中的小数格式四舍五入相关

4

0 回答 0