我正在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的方法调用。如果我打开构建变体面板并选择prodDebug
或prodRelease
,该方法会以红色加下划线,但项目构建良好。如何让Android Studio在分析结果中有效地显示上述方法或阻止我正确构建项目?
修改
我找到了一种方法来搜索不符合最低SDK的方法。通过转到右侧的Gradle面板并运行lint
任务,将生成一个HTML报告,最终显示API 19调用以及其他调用。为什么这没有在Android Studio中实现?
由于这在Android Studio本身仍然不起作用,而是在Gradle中,我还没有结束这个问题。
答案 0 :(得分:1)
如果您编译的SDK版本不是最小版本,Gradle不会告诉您是否使用了minSDK不支持的方法。 read more about it
所以简单的解决方案是使用lint功能,即inspectcode
右键单击,在项目/类上,然后=> analyze => inspectCode