web-dev-qa-db-ja.com

Gradle警告:グルーヴィーなreturnステートメントがありません

私のgradleビルドファイルに次の警告があります

すべての実行パスが値を返すわけではありません

このインスペクションは、メソッドの戻りの最後に欠けているグルーヴィーな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'
    }
}

誰もがここで問題が何であるか、そしてこの警告を取り除く方法を教えてもらえますか?.

43
Srikar Reddy

Android Studio 2.2では、return voidAndroidセクションの最後のブラケットの前。

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

私はこれと同じ警告を受けており、それは間違っていると思います。 Gradleのドキュメントを読みましたが、戻り値の型が必要なようではありません。ただし、警告は私を悩ませ、私がそれを取り除くことができる唯一の方法はreturn trueを追加することでした。

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

これが「正しい」解決策ではないかと思います。ただし、警告は削除され、問題は発生しません。

16
mattfred

検査からの推奨抑制文字列を追加することでこれを修正しました:

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

minifyEnabledshrinkResourcesの両方を指定すると、この警告が表示されなくなりました。

buildTypes {
    debug {
        minifyEnabled false
        shrinkResources false
    }

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

これはAndroid Studio 2.3で修正された問題のようです:

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

5
fornwall