当前位置: 首页 > 知识库问答 >
问题:

proguard gradle调试构建,但不调试测试

南门承教
2023-03-14

我使用以下命令为调试生成启用了proguard:

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

当我这样做时,我遇到的问题是gradle构建也希望在proGuard dDebugTest任务期间推进测试。我似乎无法修改以访问此特定任务。有没有一种方法可以预先调试apk,而不是测试apk?

共有3个答案

司空宣
2023-03-14

gradle.projectsEvaluated {
    proguardDebugTest.enabled = false
}

它在您的构建脚本中。

这里有两件事要知道:

  • 启用/禁用任务的通用渐变功能

一个小注意:它禁用任务,但构建失败。这是因为: preDexDebugTest任务不会在开启proGuard的情况下运行。到目前为止,我找到的最好的解决方案是调试特定的proGuard配置。这里有更多细节。创建一个单独的proGuard配置文件,包括像这样的常规proGuard文件:

-include proguard.cfg

并添加测试配置。对我来说是:

-dontwarn org.mockito.**
-dontwarn sun.reflect.**
-dontwarn android.test.**
莘昊
2023-03-14

引入一个新的构建类型“派生自”debug,该类型特定于再次禁用ProGuard的测试应用程序,如

android {
    buildTypes {
        debugTest.initWith(debug)
        debugTest {
            minifyEnabled false
        }
    }
}

并通过将其名称分配给testBuildType属性来为测试应用使用该构建类型

android {
    testBuildType 'debugTest'
}
欧阳博超
2023-03-14

RunProGuard是旧的。它被替换为迷你功能

使用MinifyEn的(以及新版本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')
    }
 类似资料:
  • 上下文: SBT 0.13.0,Scala 2.10.4 由于外部约束,我需要一个自定义目录结构,所以我在test中使用 获取所有测试源并成功编译它们(我可以添加语法错误并导致构建失败) 报告有0个套件、0个测试,并且全部成功 该目录中有几个JUnit风格的scalatest测试 你知道为什么它不接受任何测试吗?我是不是错过了一个场景?还显示空列表。

  • 22.13.2.调试 测试任务提供了Test.getDebug()属性,可使JVM等待调试器附加到5005端口后在进行调试. 通过调用--debug-JVM任务选项,这也可以启用调试任务(since Gradle1.12)。

  • 当你在制作应用的时候,有点小错误和发生点小报错的啥的是很正常的。有时候错误不明显,所以知道怎样去追踪错误是非常重要的。 本节课将会研究如何最好的去调试Ionic 2应用,但是不会讲什么是调试或者如何使用调试工具(例如,查看源代码,设置断点,监听网络请求等等)。如果你不熟悉基于浏览器的Javascript调试,那么强烈建议一定要先你看看这个。 浏览器调试 开发应用的时候第一发通常是桌面浏览器。能够通

  • 问题内容: 我正在使用 “ go test -v ”运行一堆单元测试。我想用delve调试它们。当我尝试运行调试器时,出现 “无法调试非主程序包” 错误。因此,如何使用delve调试器调试单元测试? 问题答案: 用途: 您还可以通过选择要运行的测试(就像)。 在内部,这与Flimzy的答案相同(它使用编译测试二进制文件),但更加精简,不会留下.test文件供您清理。

  • 首先请原谅我可能的无知,专业的做事方式对我来说很新鲜,如果有什么我没有提到的,请告诉我,我会尽力给你你需要的信息。。。 所以我试图用maven在Eclipse中构建我的webapp,我有一个测试套件 这很好,当我右键单击并以Junit test运行测试时,所有测试都通过了。 当我以Maven build的形式运行它,并以打包一系列测试为目标时,失败了??? 我的maven surefire插件配置