我的gradle构建文件中出现以下警告
并非所有执行路径都返回值
此检查报告在返回方法结束时缺少groovy return语句
这是该文件中的代码
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "ac.company.srikar.quickhelpindia"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
android {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
}
任何人都可以告诉我们这里的问题以及如何摆脱这种警告。
答案 0 :(得分:50)
使用Android Studio 2.2,我必须在return void
部分的最后一个括号前添加android
。
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "com.example.app"
minSdkVersion 19
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
minifyEnabled false
shrinkResources false
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
standard {
applicationId "com.example.app.standard"
}
free {
applicationId "com.example.app.free"
}
}
// `return void` removes the lint error: `Not all execution paths return a value`.
return void
}
答案 1 :(得分:16)
我一直收到同样的警告,我认为这是不正确的。我已阅读了gradle文档,但似乎不需要返回类型。但是,这些警告让我感到烦恼,我摆脱它的唯一方法就是添加return true
。
buildTypes {
android {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
return true
}
}
}
我怀疑这是"正确"解;但是,它确实删除了警告,并没有引起任何问题。
答案 2 :(得分:12)
我通过添加来自检查的推荐抑制字符串来修复此问题:
//noinspection GroovyMissingReturnStatement
android {
compileSdkVersion 25
buildToolsVersion "23.0.3"
...
答案 3 :(得分:9)
当我同时指定minifyEnabled
和shrinkResources
时,我摆脱了这个警告。
buildTypes {
debug {
minifyEnabled false
shrinkResources false
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
答案 4 :(得分:5)
似乎这是Android Studio 2.3中修复的问题: