【问题标题】:Add different proguard file for debug添加不同的proguard文件进行调试
【发布时间】:2017-02-13 21:20:08
【问题描述】:

我有一个包含两个模块的项目。它存在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'])
    ...
}

【问题讨论】:

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


【解决方案1】:

我会尝试以下方法:

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

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

您是否尝试过将规则文件放入 build-types 文件夹中?您可以将proguard-rules.pro 文件放入 build-types/release 文件夹,将proguard-rules-debug.pro 文件放入 build-types/debug 文件夹。

【讨论】:

  • 如果你设置minifyEnabled false,proguard 将不适用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-18
  • 2012-05-25
  • 2014-01-22
  • 2014-05-06
  • 1970-01-01
相关资源
最近更新 更多