gpt4 book ai didi

java - 为什么一些 Android 代码在以前的 API 级别上工作而不是应该的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:47 26 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,除其他外,它使用 java.BitSet 中的 toLongArray 方法。可以看出here ,这个方法是在Android API level 19,Android 4.4中引入的。 Eclipse 中的 Lint 正确地警告了我这一点,因为我的 minSdkVersion 是 10,但我可以配置它所以它不会提示。

这样做时,我可以按项目构建并运行它:在 Android 5.0 中它可以工作,在 Android 2.3(API 级别 10)中它不工作,但令人惊讶的是,在 Android 4.0.3、4.1.2、4.2 中(低于 API 级别 19)它就像一个魅力,即使它不应该工作。即使我将 min/target sdk 设置为 15 (Android 4.0.3),也会发生同样的情况。

例如,Object.hashCode 也是如此,我不明白为什么它会起作用。

最佳答案

其实这让我很吃惊。

我去他们的存储库看看到底是什么东西。所以我发现他们添加了一些方法,但使用 @hide javadoc 注释将其隐藏在文档中,直到它被完全测试或直到他们记得取消隐藏它。

@hide When applied to a package, class, method or field, @hide removes that node and all of its children from the documentation.

所以才知道真相toLongArray()方法实际上是在 commit 中添加的超过 3 年零 10 个月前,实际上他们在 1 年 7 个月前在此 commit 中取消隐藏它.

关于java - 为什么一些 Android 代码在以前的 API 级别上工作而不是应该的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27569802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com