android - 添加不同的 proguard 文件进行调试

标签 android android-gradle-plugin build.gradle android-build-type

我有一个包含两个模块的项目。它存在 build.gradle 的默认配置:

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

我想为调试编译添加不同的配置(proguard 和 minifying),如下所示:

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

当我将此代码放入我的项目时,它无法编译。日志显示每次引用另一个模块的消息错误:

Error:(37, 42) error: package com.example does not exist

两个模块的完整 Gradle 配置。

应用模块:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        ...
    }
}

apply plugin: 'com.android.application'
...

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        ...
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.3"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
        }
    }
}

repositories {
    maven {
        ...
    }
}

repositories{
    maven {
        url 'http://dl.bintray.com/amulyakhare/maven'
    }
}

...

dependencies {
    ...
}

库模块:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1"

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    ...
}

最佳答案

我会尝试以下方法:

buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-project.txt'), 'proguard-rules.pro'

            }
            debug {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-project.txt'), 'proguard-rules-debug.pro'
            }
        }

或者,您是否尝试将规则文件放入构建类型文件夹中?您可以将 proguard-rules.pro 文件放入 build-types/release 文件夹,将 proguard-rules-debug.pro 文件放入 build-types/debug 文件夹.

关于android - 添加不同的 proguard 文件进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873804/

相关文章:

android - 如何在Eclipse中将Gradle与ADT结合使用?

Android:使用背景图像缩放按钮

android - 服务- Activity 沟通

android - 如何在二维风格中指定单元测试文件夹

Android:如何使用低于库中声明的 minSdkVersion (uiautomator-v18)

android - 在构建 gradle 或 manifest 中必须给出 targetversion 吗?

java - 应用程序不断崩溃并显示 "E/RecyclerView: No adapter attached; skipping layout"

android - 绑定(bind)服务总是在前台吗?

android - Android Studio 2.3.3 的数据绑定(bind) + Gradle 相关问题

java - Gradle同步失败:原因:com.android.utils.StringHelper.appendCapitalized(Ljava/lang/StringBuilder; Ljava/lang/String;)V