'在旧版本上调用新方法'lint检查在Android Studio中没有找到高于最小api调用的内容

时间:2016-10-05 16:42:28

标签: android android-studio lint

我正在Android Studio上开发Android应用程序,我正在调用API级别19的方法。我的build.gradle看起来像这样:

android {
    compileSdkVersion 24
    buildToolsVersion '24.0.2'

    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 16
        }
    }

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 16
        multiDexEnabled true
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
}

我的项目中没有lint.xml文件,因此不会覆盖任何lint检查。

问题是lint检查“在旧版本上调用新方法”。没有找到API级别19的方法调用。如果我打开构建变体面板并选择prodDebugprodRelease,该方法会以红色加下划线,但项目构建良好。如何让Android Studio在分析结果中有效地显示上述方法或阻止我正确构建项目?

修改 我找到了一种方法来搜索不符合最低SDK的方法。通过转到右侧的Gradle面板并运行lint任务,将生成一个HTML报告,最终显示API 19调用以及其他调用。为什么这没有在Android Studio中实现?

由于这在Android Studio本身仍然不起作用,而是在Gradle中,我还没有结束这个问题。

1 个答案:

答案 0 :(得分:1)

如果您编译的SDK版本不是最小版本,Gradle不会告诉您是否使用了minSDK不支持的方法。 read more about it

所以简单的解决方案是使用lint功能,即inspectcode

右键单击,在项目/类上,然后=> analyze => inspectCode