android - proguard gradle debug build 但不是测试

标签 android gradle instrumentation

我为调试构建启用了 proguard:

android {
    buildTypes {
        debug {
            runProguard true
            proguardFile 'proguard-debug.txt'
        }
        release {
            runProguard true
            proguardFile 'proguard-project.txt'
            zipAlign true
        }
    }
}

我这样做时遇到的问题是 gradle 构建也希望在 proguardDebugTest 任务期间保护测试。我似乎无法修改以访问此特定任务。有没有办法可以保护调试 apk 但不能保护测试 apk?

最佳答案

runProguard 是旧的。它被替换为 minifyEnabled

使用 minifyEnabled(以及新版本 gradle 中的其他更改)您可能会遇到 proguard 配置适用于您的调试 apk 但不适用于仪器测试的问题。为检测测试创建的 apk 将使用其自己的 proguard 文件,因此更改现有的 proguard 文件将无效。

在这种情况下,您需要指定要在仪器测试中使用的 proguard 文件。它可能非常宽松,因为它根本不会影响您的调试和发布版本。

    // inside android block
    debug {
        shrinkResources true  // removes unused graphics etc
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        testProguardFile('test-proguard-rules.pro')
    }

关于android - proguard gradle debug build 但不是测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463089/

相关文章:

android - 用于 Gradle 构建的 dexOptions 中的 jumboMode 的目的是什么?

c++ - 通过clang++的-finstrument-functions : how to ignore internal std library calls?进行C++功能检测

Android - 位图 tileMode ="repeat"无法正常工作

android - 将移动应用程序 bundle 到单个下载中

java - Exoplayer 隐藏 PlaybackControlView onClick(不是 onTouch)

gradle - Gradle:尝试构建* .so不会产生任何结果

android - 将特定风格的依赖关系与维度联系起来

java - 使用 ByteBuddy 检测一组接口(interface)的所有实现

function - LLVM IR 仪器。如何获取指针arg指向的元素值?

android - 动画结束后如何继续处理?