Gradle Warning:缺少groovy return语句

时间:2015-03-14 04:12:43

标签: android groovy gradle android-gradle build.gradle

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

任何人都可以告诉我们这里的问题以及如何摆脱这种警告。

5 个答案:

答案 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)

当我同时指定minifyEnabledshrinkResources时,我摆脱了这个警告。

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中修复的问题:

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