Gradle Предупреждение: отсутствует оператор groovy return
У меня есть следующее предупреждение в файле gradle build
Не все пути выполнения возвращают значение
Эта инспекция сообщает о отсутствующем операторе return groovy в конце методов, возвращающих
и это код в этом файле
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'
}
}
Может ли кто-нибудь сказать, в чем проблема, и как избавиться от этого предупреждения.
Ответы
Ответ 1
С 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
}
Ответ 2
Я получаю такое же предупреждение, и я думаю, что это неверно. Я прочитал документацию gradle, и не кажется, что нужен тип возврата. Однако предупреждения меня беспокоили, и единственный способ избавиться от него - добавить return true
.
buildTypes {
android {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
return true
}
}
}
Я сомневаюсь, что это "правильное" решение; однако он удаляет предупреждения и не вызывает никаких проблем.
Ответ 3
Я исправил это, добавив рекомендуемую строку подавления из проверки:
//noinspection GroovyMissingReturnStatement
android {
compileSdkVersion 25
buildToolsVersion "23.0.3"
...
Ответ 4
Я избавился от этого предупреждения, когда указал оба, minifyEnabled
и shrinkResources
.
buildTypes {
debug {
minifyEnabled false
shrinkResources false
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
Ответ 5
Кажется, что это проблема, исправленная в Android Studio 2.3:
https://code.google.com/p/android/issues/detail?id=223575