Java ';调用需要API级别23';错误,但API 1的FrameLayout上存在getForeground()
摘要 最后,我发现了相关的问题,Java ';调用需要API级别23';错误,但API 1的FrameLayout上存在getForeground(),java,android,android-studio,android-framelayout,android-api-levels,Java,Android,Android Studio,Android Framelayout,Android Api Levels,摘要 最后,我发现了相关的问题,setForeground()错误地标记为在扩展FrameLayout的视图组上需要API 23 如果您没有扩展FrameLayout,则说明文件错误,需要API 23 更新的问题 用公用软件标记并由他回答: 这是一个文档错误。FrameLayout上存在setForeground() 从API级别1开始;仅在API级别23时才可查看 在我的例子中,fork中的检查没有检测到文档错误,但是在集成项目中检测到了,我不理解它,无论如何,这回答了我最初的问题 但情况
setForeground()
错误地标记为在扩展FrameLayout
的视图组上需要API 23
如果您没有扩展FrameLayout
,则说明文件错误,需要API 23
更新的问题
用公用软件标记并由他回答:
这是一个文档错误。FrameLayout上存在setForeground()
从API级别1开始;仅在API级别23时才可查看
在我的例子中,fork中的检查没有检测到文档错误,但是在集成项目中检测到了,我不理解它,无论如何,这回答了我最初的问题
但情况不同,此代码已经扩展了Framelayout
,并且使用此方法,它不是ImageView
,因此我认为此方法已在API 23中删除。它现在没有出现在引用中
更新:我为FrameLayout添加了一个:
新问题
因此,我的问题变为如何在以前的版本中使用该方法,以及为什么选择性地出现检查错误
如果添加冗余强制转换,错误消息将消失:
((FrameLayout) layout).getForeground()
但是它正在访问现在不支持的视图
方法
因此,我认为针对以前的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设备上的工作情况,并进行了调试,我认为它会崩溃,反正它只在一个动画中使用,将来我会修复/替换它
初始问题
我分叉并定制了Google示例,android studio显示了一个错误,我不了解在android中使用类View
的方法get前台()
所需的API级别。View
包:
调用需要API级别23(当前最小值为19):
android.view.view#获取前景
将方法标记为API级别1中添加的方法,文档(Control+Q
)显示了相同的内容:
但是在旧版本上调用新方法显示了一个错误,需要API级别23:
在这种情况下,我发现了一个bug,但我认为这不是bug,因为原来的fork没有显示这个错误消息
我将尝试在消息第一次出现时检测,但我做了很多更改,因此任何线索都将受到感谢。最后我发现了相关问题,setForeground()
错误地标记为需要API 23来扩展FrameLayout
如果您没有扩展FrameLayout
,说明文件是错误的,确实需要API 23
那么,您是否知道如何为API 23以下的设备获取或设置前景?如果您要扩展FrameLayout,可以使用冗余强制转换或将类型更改为FrameLayout,以避免文档错误。否则,这是不可能的,但也许下一个解决方法对您有用谢谢您的帮助