2014-02-19 29 views
5

我正在使用Android Studio 0.4.5,並且遇到了同步gradle的麻煩。構建腳本錯誤,發現不支持的Gradle DSL方法:'android()'!

當我嘗試這樣做,我得到這個錯誤:

Gradle 'MyApp' project refresh failed: Build script error, unsupported Gradle DSL method found: 'android()'! 

我的解決方案包含4個模塊。這是我的根build.graddle

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.8.+' 
    } 
} 

android {  
    packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
    } 
} 

allprojects { 
    repositories { 
     mavenCentral() 
    } 
} 

而且他人(I去除爲了簡化依賴性)

模塊1

apply plugin: 'android' 

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.8.+' 
    } 
}buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.8.+' 
    } 
} 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 19 
    } 

    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

模塊2

apply plugin: 'android-library' 

android { 
    compileSdkVersion 18 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 17 
    } 

    release { 
     runProguard false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 

模塊3 應用插件:「Android的圖書​​館

android { 
    compileSdkVersion 18 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 17 
    } 

    release { 
     runProguard false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 

模塊4

apply plugin: 'android-library' 

android { 
    compileSdkVersion 17 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 17 
    } 

    release { 
     runProguard false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 

對不起,讓這個這麼長時間,但我發現這裏絕望:(

回答

8

的主要原因是具有這樣的:

android {  
    packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
    } 
} 
在根的build.gradle

4

刪除以下代碼行Module1 build.gradle file:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.8.+' 
    } 
}buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.8.+' 
    } 
} 

由於您在所有模塊中使用相同的配置,因此只在根gradle文件中使用它是很好的做法。

即使你想要它在模塊的build.gradle文件中,這個代碼應該在應用android插件之前。

最終模塊1 build.gralde文件:

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 19 
    } 

    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

還要確保下文提到的配置應該跨模塊

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 19 
    } 
} 

你可以使用任何你想要的,但應該是相同的是一樣的。

相關問題