2017-04-03 43 views
-1

我一直在Android Studio中成功使用DexGuard Gradle,没有任何问题。我最近在OkBuck上试过我的手来加快我的构建时间,这真的帮助了我。Buck/OkBuck:DexGuard集成不起作用

虽然能够建立调试和我签署的APK,但是当我试图用DexGuard建设发布,如:

./buckw install --run app:bin_release 

我收到以下错误:

Error: Unknown option '-dalvik' in line 9 of file 'SomeApp/app/build/okbuck/release/proguard.pro', 
    included from line 60 of file 'buck-out/gen/app/bin_release/proguard/command-line.txt', 
    included from argument number 1 

BUILD FAILED: //app:bin_release failed with exit code 1: 
proguard_obfuscation 
stderr: Error: Unknown option '-dalvik' in line 9 of file 'SomeApp/app/build/okbuck/release/proguard.pro', 
    included from line 60 of file 'buck-out/gen/app/bin_release/proguard/command-line.txt', 
    included from argument number 1 

根据文档提及DexGuard集成的细节可能并不重要,并且在从Android Studio内部构建或使用时工作良好,但在这里它是:

SomeApp /的build.gradle:

buildscript { 
    ext { 
     DEXGUARD_HOME = "$System.env.DEXGUARD_HOME" 
    } 

...  

SomeApp /应用/的build.gradle:

buildTypes { 
    ... 

    release { 
     minifyEnabled true 
     proguardFile DEXGUARD_HOME + "Dexguard-7.3.11/lib/dexguard-release-aggressive.pro" 
     proguardFile 'dexguard-project.txt' 
     signingConfig signingConfigs.release 
    } 
} 

回答

2

该消息通常表明的ProGuard仍处于启用状态 - ProGuard不知道DexGuard选项-dalvik。您应该将minifyEnabled设置为false。 DexGuard本身已经缩小,优化和混淆了所有的代码和资源。

+0

我将'minifyEnabled'改为'false',它似乎没有构建DexGuard ...(DexGuarding之后的APK大小约为4 MB,但是这样构建了7+ MB)我希望我不会错过任何东西。 –

+0

我假设你已经在构建文件中指定了'apply:'dexguard'',因为它在标准的Gradle构建中工作。 OkBuck可能会干扰它设置的任务 - 我现在不知道。 –

+0

是的,'应用插件:'dexguard''设置正确。如果我能用“OkBuck”构建我的发布版本,这将是非常好的,因为这是该项目最耗时的构建。我知道DexGuarding会花时间,但我认为我的发布版本至少会快一点。 –