我可以使用Gradle缩小dex的65k方法限制吗?

时间:2014-04-08 21:08:20

标签: android gradle proguard

我正在开发一个大型应用程序,如何有多个库,我达到65k方法限制,我想清理一些库来缩小方法大小。现在我正在使用proguard,但这需要5分钟来编译!所以,我需要一个方法在proguard之前清理(比如使用build.gradle排除或类似的东西) 我正在尝试使用这样的东西:

compile ('com.google.android.gms:play-services:4.3.+'){
    exclude group: 'com.google.android.gms.drive'
    exclude group: 'com.google.android.gms.games'

}

但它不起作用,任何想法?

2 个答案:

答案 0 :(得分:1)

如果禁用ProGuard的优化步骤(-dontoptimize)和混淆步骤(-dontobfuscate),ProGuard可能足够快,可用于调试版本。缩小步骤可以大大减少方法的数量。

答案 1 :(得分:0)

由于Gradle没有使用Zip64,您是否会遇到GRADLE-2964?根据jira的说法,这是固定的,所以也许它适用于Gradle的快照。

使用Gradle 1.12快照的示例:

gradle-wrapper.properties:

distributionUrl=http\://services.gradle.org/distributions-snapshots/gradle-1.12-20140327133732+0000-bin.zip

然后在任何压缩的任务(从ZipTask扩展)slap:

{
    ....
    zip64 = true
    ....
}