BVB*_*BVB 6 android proguard gradle android-library android-gradle-plugin
我想在我的Android库的发布版本上运行ProGuard.以下是build.gradle我的项目中的文件.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
}
buildTypes {
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行gradlew clean或gradlew build返回以下错误:
> Could not find method buildTypes() for arguments [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure10@5f3306ad] on project
似乎插件android-library缺少buildTypes方法.如果我apply plugin改为android,则gradlew运行成功.但是,这是一个图书馆项目,我想保持这样.我的其他部分gradle.build(这里没有提到)依赖于项目是一个库.
有没有办法让android-library插件在构建时运行ProGuard?
release通过像这样删除来解决我的问题buildTypes:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
}
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-android.txt'
}
}
Run Code Online (Sandbox Code Playgroud)
另请注意,我proguardFile在 下添加了另一个release。这解决了我在解决最初的问题后遇到的另一个问题buildTypes。
| 归档时间: |
|
| 查看次数: |
3375 次 |
| 最近记录: |