【问题标题】:How to use new Android 2.0 Shrinker and set useProguard false?如何使用新的 Android 2.0 Shrinker 并将 useProguard 设置为 false?
【发布时间】:2016-06-10 08:02:08
【问题描述】:

我升级到了 Android Studio 2.0 Beta 5。我正在使用 gradle 工具 2.0.0-beta5。在 Android 开发博客站点上,有一段视频解释了如何使用新的 Shrinker 进行调试构建(在 3:14)

https://www.youtube.com/watch?list=PLWz5rJ2EKKc_w6fodMGrA1_tsI3pqPbqa&v=xxx3Fn7EowU

我正在尝试使用视频中解释的调试 buildType 构建我的项目:

    debug {
        minifyEnabled true
        useProguard false
    }

我收到一堆警告,然后在构建时出现此错误:

Error:Execution failed for task 'app:transformClassesWithNewClassShrinkerForMyAppNameGoesHereDebug'.
Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.

使用 Proguard,我会在 proguard 项目文件中添加必要的适当 -dontwarn。我可以在某处添加 -dontwarn 语句的 Shrinker 项目文件吗?

【问题讨论】:

    标签: android android-studio proguard


    【解决方案1】:

    我在上面找到了一些documentation。原来它使用与 Proguard 相同的配置文件。这是文档中的相关部分:

    内置的压缩​​器只能去除死代码,它不会混淆或优化。 可以使用与 ProGuard 相同的文件进行配置,但会忽略所有与混淆或优化相关的标志。与 ProGuard 不同,我们支持将内置收缩器与 Instant Run 一起使用。

    另外,这里有一个示例配置供参考:

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

    【讨论】:

    • 编译安装APK。谢谢!不幸的是,我的 proguard 配置已经存在问题。杰克逊抛出“没有找到合适的构造函数”错误。但至少它现在正在建设中。
    • 我之前在 SO 上看到过一些关于杰克逊问题的帖子。至少你比我做得更远!我很高兴看到添加 -dontwarn 标志让我通过了transformClassesWithNewClassShrinkerForDebug 步骤。然而,这只是导致了一个 64K 的方法错误,这很奇怪,因为项目在使用 Proguard 时使用相同的 Proguard 规则构建。
    猜你喜欢
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多