需要 Android API 级别 9 的 Java 库方法的兼容性吗?

2024-03-29

一些 Java 库方法,例如DecimalFormat.setRoundingMode have a @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 Lint 带下划线setRoundingMode为我穿红色并告诉我

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

How and whyAndroid 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 文档证实设置舍入模式 http://developer.android.com/reference/java/text/NumberFormat.html#setRoundingMode(java.math.RoundingMode), copySign http://developer.android.com/reference/java/lang/Math.html#copySign(double,%20double),以及 API 级别 9 中添加的其他内容。这是否意味着运行 Android 操作系统级别 8 及以下的设备是专门使用 JDK 1.5 编译/构建的?

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

相关Android 中以小数格式四舍五入一半 https://stackoverflow.com/questions/4072313/rounding-half-up-with-decimal-format-in-android


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要 Android API 级别 9 的 Java 库方法的兼容性吗? 的相关文章

随机推荐