如何使用新的Android 2.0 Shrinker并设置useProguard false?

Lou*_*rda 14 android proguard android-studio

我升级到Android Studio 2.0 Beta 5.我使用的是gradle tools 2.0.0-beta5.在Android dev blogspot网站上,有一个视频解释了如何使用新的Shrinker进行调试构建(在3:14)

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

我正在尝试使用调试buildType构建我的项目,如视频中所述:

    debug {
        minifyEnabled true
        useProguard false
    }
Run Code Online (Sandbox Code Playgroud)

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

Error:Execution failed for task 'app:transformClassesWithNewClassShrinkerForMyAppNameGoesHereDebug'.
Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.
Run Code Online (Sandbox Code Playgroud)

使用Proguard,我会在proguard项目文件中添加必要的-dontwarn.是否有一个Shrinker项目文件,我可以添加-dontwarn语句?

Geo*_*gan 5

我找到了一些关于此的文档。事实证明它使用与 Proguard 相同的配置文件。这是文档中的相关部分:

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

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

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

  • 我之前在 SO 上看到了一些关于杰克逊问题的帖子。至少你比我做得更远!我很高兴看到添加 -dontwarn 标志让我通过了 `transformClassesWithNewClassShrinkerForDebug` 步骤。然而,这只是导致了 64K 方法错误,这很奇怪,因为在使用 Proguard 时项目使用相同的 Proguard 规则构建。 (2认同)