2014-02-23 36 views
11

我試圖設置gradle在Android Studio 0.4.5中創建Google Play商店版本。在gradle設置中,我使用默認的gradle包裝器。我使用「項目屬性」對話框來設置簽名配置和「發佈」構建類型。我只有一個構建模塊。下面是導致該文件的build.gradle:構建腳本錯誤,發現不支持的Gradle DSL方法:'signingConfig()'

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion '19.0.1' 
    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 19 
     versionCode 10 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      runProguard true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      debuggable false 
      signingConfig playstore 
      proguardFile 'proguard-rules.txt' 
     } 
    } 
    signingConfigs { 
      playstore { 
      keyAlias 'mykeyalias' 
      storeFile file('playstore.jks') 
      keyPassword 'xxxxx' 
      storePassword 'xxxxx' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar', '*.aar']) 
    compile 'com.android.support:support-v4:+' 
    compile files('libs/libGoogleAnalyticsServices.jar') 
} 

但當gradle這個嘗試同步我收到以下錯誤:

Build script error, unsupported Gradle DSL method found: 'signingConfig()'! 
      Possible causes could be: 
      - you are using Gradle version where the method is absent 
      - you didn't apply Gradle plugin which provides the method 
      - or there is a mistake in a build script 

有什麼我需要做的,建立正確的gradle這個?

Thanx提前。

+0

也許你正在使用太舊的Android插件的版本?你可以顯示帶有Android插件的'buildscript'塊嗎? –

回答

12

首先在你的buildTypes塊之前定義你的SigningConfigs。另外playstore方法在signingConfigs之內,所以你必須以signingConfigs.playstore的方式給出參考。

你最終build.gradle文件應該是這樣的:

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion '19.0.1' 
    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 19 
     versionCode 10 
     versionName "1.0" 
    } 

    signingConfigs { 
      playstore { 
       keyAlias 'mykeyalias' 
       storeFile file('playstore.jks') 
       keyPassword 'xxxxx' 
       storePassword 'xxxxx' 
     } 
    } 


    buildTypes { 
     release { 
      runProguard true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      debuggable false 
      signingConfig signingConfigs.playstore 
      proguardFile 'proguard-rules.txt' 
     } 
    } 

} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar', '*.aar']) 
    compile 'com.android.support:support-v4:+' 
    compile files('libs/libGoogleAnalyticsServices.jar') 
} 
+4

謝謝。這就像一個魅力。我發現令人沮喪的是,我使用Android Studio項目屬性對話框設置了signingConfigs,並且它在build.gradle文件中的buildTypes後面放置了signingConfigs *。我應該把它作爲一個bug報告給Google。 – NLam

+1

是嗎?確保提交一個錯誤,以便團隊瞭解這一點,並能夠在下一個版本中解決它。 – pyus13

相關問題