gpt4 book ai didi

android - 如何让 runProguard 为 android-library Gradle 插件工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:43 26 4
gpt4 key购买 nike

我想在我的 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')
}
}
}

运行 gradlew cleangradlew build 返回以下错误:

> 无法在项目上找到参数 [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure10@5f3306ad] 的方法 buildTypes()

似乎插件 android-library 缺少 buildTypes 方法。如果我将 apply plugin 更改为 androidgradlew 会成功运行。然而,这是一个图书馆项目,我想保持这样。我的 gradle.build 的其他部分(此处未提及)依赖于作为库的项目。

有没有办法让 android-library 插件在构建时运行 ProGuard?

最佳答案

通过从 buildTypes 中取出 release 解决了我的问题,如下所示:

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

另请注意,我在 release 下添加了另一个 proguardFile。这解决了我在解决最初的 buildTypes 问题后遇到的另一个问题。

关于android - 如何让 runProguard 为 android-library Gradle 插件工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19100776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com