Gradle Warning:缺lessgroovy返回语句
我在我的gradle构build文件中有以下警告
不是所有的执行path都返回一个值
这个检查在返回方法结束时报告缺less的常规返回语句
这是该文件中的代码
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' } }
任何人都可以告诉这是什么问题,以及如何摆脱这个警告。
在Android Studio 2.2中,我必须在android
部分的最后一个括号之前添加一个return void
。
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 }
我已经得到这个相同的警告,我认为这是不正确的。 我已经通读了Gradle文档,并没有看到需要返回types。 但是,警告错误我和我能摆脱它的唯一方法是添加return true
。
buildTypes { android { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' return true } } }
我怀疑这是“正确”的解决办法; 但是,它确实删除了警告,并不会导致任何问题。
我通过添加检查推荐的抑制string来解决这个问题:
//noinspection GroovyMissingReturnStatement android { compileSdkVersion 25 buildToolsVersion "23.0.3" ...
当我指定了minifyEnabled
和shrinkResources
时,我摆脱了这个警告。
buildTypes { debug { minifyEnabled false shrinkResources false } release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } }
看来这是Android Studio 2.3中解决的一个问题: