当前位置: 首页 > 知识库问答 >
问题:

调用需要API级别23错误,但是getForeground()存在于API 1的FrameLayout上

纪勇军
2023-03-14

总结

最后,我发现了相关的问题,setForeground()错误地标记为在扩展FrameLayout的视图组上需要API 23。

问题189041:setForeground()错误地标记为需要API 23(新API)用于扩展FrameLayout的视图组

如果您没有扩展FrameLayout,则说明文件错误,需要API 23。

第186273期:观点。设置错误的API级别

更新问题

Commonware在ImageView上标记为无法使用setForeground方法的副本,并由他回答:

setForeground()存在于API Level 1的FrameLayout上;它仅在API Level 23时处于View上。

在我的例子中,fork中的检查没有检测到文档错误,但是在集成项目中检测到了,我不理解它,无论如何,这回答了我最初的问题。

但情况不同,这段代码已经扩展了Framelayout,使用这个方法,它不是ImageView,所以我想这个方法已经在API 23中删除了。它现在没有出现在参考资料中。

更新:我为FrameLayout添加了一个差异报告:

新问题

所以我的问题变为如何在以前的版本中使用该方法,以及为什么会选择性地出现检查错误?

如果我添加了冗余强制转换,错误消息将消失:

((FrameLayout) layout).getForeground()

但是它正在访问现在不支持的View方法。

因此,我认为针对以前的API会删除错误消息,但我希望能找到一个解决方案,使用此Framelayout方法或线索来解决我的问题:

ANDROID_COMPILE_SDK_VERSION=23
ANDROID_BUILD_TOOLS_VERSION=23.0.1
ANDROID_DEFAULT_MIN_SDK_VERSION=19
ANDROID_DEFAULT_TARGET_SDK_VERSION=23

变通方法

简而言之,作为一种解决方法,我直接将类型更改为FrameLayout,因此有关API和强制转换的警告消失了,我测试了它在Android 4.4.4设备上的工作情况,并进行了调试,我认为它会崩溃,反正它只在一个动画中使用,我将来会修复/替换它。

初始问题

我分叉和自定义的谷歌示例android-topeka,和android-dios显示一个错误,我不明白的API级别需要使用的方法getForeground()查看android.view>包:

调用需要API级别23(当前最小值为19):android.view.View#getForeground

引用将方法标记为在API级别1中添加的,并且留档(Control Q)显示相同:

但是调用旧版本检查的新方法显示需要API级别23的错误:

我发现了一个类似的问题,在这种情况下是一个错误,但我认为这不是一个错误,因为原始的分叉没有显示这个错误信息。

我会尝试检测第一次出现的消息,但我做了很多改变,所以任何线索都将不胜感激,谢谢。

共有1个答案

何昆
2023-03-14

最后我发现了相关的问题,setForeground()错误地标记为需要API 23来扩展FrameLayout

问题189041:setForeground()错误地标记为需要API 23(新API)用于扩展FrameLayout的视图组

如果您没有扩展FrameLayout,则留档错误,API 23确实是必需的。

第186273期:观点。设置错误的API级别

 类似资料:
  • 我实际上是在努力做下面的事情:我的服务类 这让我想要的没有被调用,实际上与这个模拟没有任何交互。你知道我做错了什么吗??

  • 我正在实现谷歌的方向API。我的应用程序支持和。 是否有解决方案,或者我应该检查用户的版本,并允许此功能(如果其版本受支持)? 错误: 调用需要API级别26(当前最小值为23):java。时间瞬间#现在少了。。。(Ctrl-F1)检查信息:此检查扫描应用程序中的所有Android API调用,并警告此应用程序针对的所有版本上不可用的任何调用(根据清单中的最小SDK属性)。如果你真的想使用这个AP

  • 我正在尝试添加运行时权限android(6.0.1)API 23,如果我使用SDK版本(最小和目标版本均为23)它很好,如下所示, 如果我改变android:minSdkVersion(小于23) 例如: 我在下面收到错误: 调用需要API级别23(当前最小值为14):android.app.Activity#requestPermissions,checkSelfPermission 对于以下两

  • 我的代码中有这样一行: 显示以下错误: 调用需要API级别16(当前最小值为14) 如果API级别较高,它是否限制了我的应用程序可以使用的设备数量?

  • 在API级别1中添加的公共无效设置文本外观(上下文,int resId)此方法在API级别23中不建议使用。改为使用setText外观(int)。 我的问题:为什么它被弃用?为什么它不再需要?最重要的是,对于旧版本,如何使用?

  • 晚安, 我正在对我的服务进行一些测试,在删除方法中执行测试时遇到了问题。 我想知道是否有人犯过这个错误,可以帮助我。 我扫描时出错。据报道,该方法没有使用。 例外情况: 代码: