web-dev-qa-db-fra.com

Avertissement Gradle: déclaration de retour groovy manquante

Je reçois l'avertissement suivant dans mon fichier de construction Gradle

Tous les chemins d'exécution ne renvoient pas de valeur

Cette inspection signale une déclaration de retour groovy manquante à la fin des méthodes de retour

et voici le code de ce fichier

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

Quelqu'un peut-il dire quel est le problème ici et comment se débarrasser de cet avertissement?.

43
Srikar Reddy

Avec Android Studio 2.2, j'ai dû ajouter un return void avant la dernière parenthèse dans la section 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
}
50
Soren Stoutner

J'ai reçu ce même avertissement et je pense qu'il est incorrect. J'ai lu la documentation de gradle et il ne semble pas qu'un type de retour soit nécessaire. Cependant, les avertissements me dérangent et la seule façon de m'en débarrasser était d'ajouter return true.

buildTypes {
    Android {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            return true
        }
    }
}

Je doute que ce soit la "bonne" solution; cependant, il supprime les avertissements et ne pose aucun problème.

16
mattfred

J'ai corrigé cela en ajoutant la chaîne de suppression recommandée lors de l'inspection:

//noinspection GroovyMissingReturnStatement
Android {
    compileSdkVersion 25
    buildToolsVersion "23.0.3"
...
12
JL West

Je me suis débarrassé de cet avertissement lorsque j'ai spécifié les deux, minifyEnabled et shrinkResources.

buildTypes {
    debug {
        minifyEnabled false
        shrinkResources false
    }

    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
    }
}
9
MatF

Il semble que ce problème soit résolu dans Android Studio 2.3:

https://code.google.com/p/Android/issues/detail?id=223575

5
fornwall