2015-03-14 18 views
43

Tôi đang gặp những cảnh báo sau đây trong xây dựng gradle tôi tậpGradle Cảnh báo: thiếu groovy trở lại tuyên bố

Not all execution paths return a value

This inspection reports on missing groovy return statement at the end of methods returning

và đây là mã trong tập tin đó

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

bất cứ ai có thể cho là những gì vấn đề ở đây và cách loại bỏ cảnh báo này.

+0

gì là thực tế đầu ra từ gradle? Làm thế nào bạn chạy nó? –

+0

Tôi chưa định cấu hình loại xây dựng gỡ lỗi, có thể đó là vấn đề? – Opal

+0

@tim_yates Tôi không chạy nó. Khi tôi mở tệp build.gradle của mô-đun, nó sẽ hiển thị thông báo cảnh báo màu vàng gần thanh cuộn. Ngoài ra, khi tôi di chuột qua "phát hành", "minifyEnabled", "proguardFiles", "getDefaultProguardFile" hoặc "biên dịch", nó hiển thị thông báo cho biết "không thể giải quyết biểu tượng" –

Trả lời

16

Tôi đã nhận được cảnh báo tương tự này và tôi nghĩ rằng điều đó là không chính xác. Tôi đã đọc qua tài liệu gradle và nó không xuất hiện rằng một loại trả về là cần thiết. Tuy nhiên, các cảnh báo lỗi tôi và cách duy nhất tôi có thể thoát khỏi nó là thêm return true.

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

Tôi nghi ngờ đây là giải pháp "đúng"; tuy nhiên, nó loại bỏ các cảnh báo và nó không gây ra bất kỳ vấn đề nào.

+3

Cảm ơn vì điều này, đồng ý rằng tôi muốn có một giải pháp * chính xác *, nhưng tôi rất vui khi loại bỏ các cảnh báo. – Jon

+0

Tốt, nhưng tôi thích 'trả về null' vì sự vắng mặt của câu lệnh trả về có nghĩa là tôi không trả lại gì cả. – Androiderson

+3

Hoặc 'return void' vì điều này thực sự là vô nghĩa. – Jon

9

Tôi đã loại bỏ cảnh báo này khi tôi chỉ định cả hai, minifyEnabledshrinkResources.

buildTypes { 
    debug { 
     minifyEnabled false 
     shrinkResources false 
    } 

    release { 
     minifyEnabled true 
     shrinkResources true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 
+5

Đã thử và không hoạt động. Tôi không thể hiểu tại sao điều đó lại hiệu quả. –

50

Với Android Studio 2.2 Tôi đã có thêm một return void trước khung cuối cùng trong phần 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 
} 
+0

nó sẽ chỉ sửa lỗi cho tôi bằng cách thêm 'return void' vào cuối khối ** defaultConfig **. –

+0

Andrew, 'defaultConfig' của bạn trông như thế nào? –

+0

'' 'defaultConfig { multiDexEnabled đúng minSdkVersion 16 // noinspection OldTargetApi targetSdkVersion 22 trở lại khoảng trống // loại bỏ các lỗi lint: 'Không phải tất cả những con đường thực hiện trả về một giá trị' }' '' –

12

tôi cố định này bằng cách thêm các chuỗi ức chế được đề nghị từ kiểm tra:

//noinspection GroovyMissingReturnStatement 
android { 
    compileSdkVersion 25 
    buildToolsVersion "23.0.3" 
... 
Các vấn đề liên quan