2017-04-03 1 views
-1

J'ai utilisé DexGuard avec succès avec Gradle dans Android Studio sans aucun problème. J'ai récemment essayé mes mains sur OkBuck pour accélérer mon temps de construction et cela m'a vraiment aidé.Buck/OkBuck: l'intégration de DexGuard ne fonctionne pas

Bien qu'il soit en mesure de construire le débogage et signé APK pour moi, mais quand j'essayer de construire pour la libération avec DexGuard comme:

./buckw install --run app:bin_release 

Je reçois l'erreur suivante:

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 

Il est probablement insignifiant de mentionner les détails de l'intégration de DexGuard comme cela est fait selon la documentation et fonctionne correctement lorsque je compile depuis Android Studio ou en utilisant ./gradlew, mais voici:

SomeApp/build.gradle:

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

...  

SomeApp/app/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 
    } 
} 

Répondre

2

Le message indique généralement que ProGuard est toujours activé - ProGuard ne connaît pas l'option DexGuard -dalvik. Vous devez laisser minifyEnabled défini sur false. DexGuard lui-même réduit déjà, optimise et obscurcit tout le code et les ressources.

+0

J'ai changé 'minifyEnabled' à' false', il semble avoir construit sans DexGuard ... (la taille du fichier APK après DexGuarding est d'environ 4 Mo, mais cela a construit 7+ Mo) J'espère ne rien manquer. –

+0

Je suppose que vous avez spécifié 'apply: 'dexguard'' dans votre fichier de construction, car il fonctionne dans une version Gradle standard. OkBuck peut interférer avec les tâches qu'il met en place - je ne sais pas pour le moment. –

+0

Yup, 'apply plugin: 'dexguard'' est configuré correctement. Ce serait vraiment génial si je pouvais construire ma version avec 'OkBuck' car c'est la version la plus longue de ce projet. Je comprends que DexGuarding prendra son temps, mais je suppose que mes versions seront au moins un peu plus rapides. –