找到比minSdk 21更高的api 23呼叫

时间:2016-06-02 12:34:59

标签: android android-fragments android-studio

你好这个主题有一些答案,但到目前为止没有一个对我有用。 我的build.gradle看起来像这样

 compileSdkVersion 23
 buildToolsVersion "23.0.3"
 minSdkVersion 21
 targetSdkVersion 23

在我的片段中的某个地方,我调用了方法getContext(),并在Lollipop 5.0设备上崩溃了应用程序。它适用于Marshmallow 6.0。

从非支持库包中导入Fragment

import android.app.Fragment;

由于我在23上编译了SDK,我可以使用Fragment调用方法getContext()来获取Context。 这将导致Lollipop 5.0和5.1崩溃,因为该方法是使用API​​ 23而不是API 21,22添加的。

我的问题是,当min SDK低于该值时,如何在Android Studio中找到这样的高级别调用?

2 个答案:

答案 0 :(得分:3)

  

如何在最小的时候在Android Studio中找到这样的高级别电话   SDK低于那个?

AFAIK Android工作室通常会警告开发人员,只要他们使用任何不完全向后兼容的方法,直到应用程序定义的minSDKVersion。因此,在那个时间点,您可以查看当前版本的设备并相应地调用相关的其他方法。

但是,出于某种原因,在调用getContext()方法时它没有显示任何lint警告。所以,我们现在似乎必须处理它。

答案 1 :(得分:2)

转到

- >分析 - >检查代码 - >运行代码检查

然后在结果视图中有

"Project Name"
    - Android > Lint > Correctness
        - calling new methods in older versions

在(调用旧版本中的新方法)下,应列出所有不可用的调用