2017-04-03 19 views
-1

Android Studio에서 DxGuard를 아무 문제없이 성공적으로 사용하고 있습니다. 최근에 내 빌드 시간을 단축하기 위해 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을 알지 못합니다. minifyEnabledfalse으로 설정해야합니다. DexGuard는 이미 모든 코드와 리소스를 축소, 최적화 및 난독 화합니다.

+0

'minifyEnabled'를'false'로 변경했는데, DexGuard없이 빌드 한 것으로 보입니다. (DexGuarding 이후의 APK 크기는 약 4MB이지만, 7MB 이상입니다.) 아무것도 놓치지 않기를 바랍니다. –

+0

표준 Gradle 빌드에서 작동하기 때문에 빌드 파일에'apply : 'dexguard'를 지정했다고 가정합니다. Okuck이 설정 한 작업을 방해 할 수 있습니다. 현재로서는 모르겠습니다. –

+0

예,'apply plugin : 'dexguard'가 제대로 설정되었습니다. 이 프로젝트에서 가장 시간이 많이 걸리는 빌드 인 OkBuck으로 릴리스 빌드를 만들 수 있다면 정말 좋을 것입니다. DexGuarding은 시간이 걸릴 것으로 알고 있지만 릴리스 빌드는 적어도 조금 더 빨라질 것입니다. –