Подтвердить что ты не робот

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'
    }
}

Может ли кто-нибудь сказать, в чем проблема, и как избавиться от этого предупреждения.

4b9b3361

Ответ 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'
    }
}