2016-10-24 1 views
0

J'essaie de faire en sorte que Dexguard n'élimine pas les fonctions de journalisation lorsqu'il rétrécit et obscurcit mon code. J'ai donc commenté l'instruction suivante dans le fichier de configuration Dexguard:Conserver la journalisation tout en obscurcissant avec Dexguard

classe -assumenosideeffects android.util.Log {...}

Une fois que cette instruction est commenté, build échoue avec le message d'erreur suivant:

L'exécution a échoué pour la tâche ': app: dexguardRelease'. > Instruction a invalide taille de l'index constant ([699742] ldc_w # 65536)

J'ai d'abord pensé que le problème était lié aux limites Android 64K mais BUILD succès quand dexguard est désactivé ou quand il est activé et mis à dépouiller les fonctions de journalisation.

Est-il possible que dexguard ait des problèmes d'obfuscation des fonctions comme Log.d() qui peut contenir des chaînes longues comme arguments d'entrée?

Merci

Répondre

1

Vous avez probablement beaucoup de chaînes de débogage dans cette classe en combinaison avec une directive -encryptstrings **.

Cela conduira à un grand nombre de chaînes cryptées dans une seule classe conduisant à des erreurs comme décrit dans votre message. Je vous suggère de revoir vos règles -encryptstrings et de ne chiffrer que celles qui sont vraiment sensibles.