你好,有一些关于这个主题的答案,但到目前为止没有一个对我有效。我的build.gradle看起来像这样
compileSdkVersion 23
buildToolsVersion "23.0.3"
minSdkVersion 21
targetSdkVersion 23
在我的Fragments中的某个地方,我调用了方法getContext()
,这使得应用程序在Lollipop 5.0设备上崩溃,而在Marshmallow 6.0上运行良好。Fragment
是从不支持的库包导入的。
import android.app.Fragment;
因为我在23上有compileSDK,所以我可以在Fragment中调用方法getContext()
来获取Context。这将导致Lollipop 5.0和5.1上的崩溃,因为该方法是用API 23而不是API 21,22添加的。
我的问题是,当最小SDK低于此值时,我如何在Android Studio中找到如此高级别的调用?
3条答案
按热度按时间06odsfpq1#
当min SDK低于此级别时,我如何在Android Studio中找到如此高级别的调用?
AFAIK Android Studio通常会在开发人员使用任何方法时发出警告,这些方法在应用程序定义的minSDKVersion之前不完全向后兼容。因此,在该时间点,您可以检查设备的当前版本,并相应地调用其他相关方法。
然而,由于某种原因,它在调用
getContext()
方法时没有显示任何lint警告。所以,看起来我们现在必须处理它。c8ib6hqw2#
请转到
然后在结果视图中有
在(调用旧版本中的新方法)下,应列出所有不可用的调用
svgewumm3#
现在我们已经到了2022年,我找到了一个更合适的解决方案。在 Terminal 中运行
gradlew lint
命令,等待它完成将生成一个报告文件。在浏览器中打开此文件,找到
InlinedApi
和NewApi
,您将找到所有文件。