2017-07-04 3 views
0

Lorsque j'ai créé mon application, j'ai vu un nom de package ne pas masquer. Je pense que ces paquets ont des classes d'annotation @Keep.Android Proguard modifier le nom du package manuellement

Mais je veux changer nom du paquet manuellement. Par exemple:

proguard-rules.txt

-applymapping mapping.txt 

mapping.txt

com.data.Net -> com.data.Q 

J'ai essayé, mais ça ne fonctionne pas. N'est-ce pas possible?

Répondre

0

ProGuard n'a pas d'option standard pour renommer les paquets tout en gardant leurs noms de classes simples.

Vous pouvez créer un fichier de mappage ProGuard manuellement, avec des lignes comme:

com.example.MyClass -> a.MyClass: 
com.example.MyOtherClass -> a.MyOtherClass: 

Vous pouvez ensuite utiliser l'option -applymapping mapping.txt

+0

Merci pour. (MyClass a l'annotation @Keep pour GSON serialize/deserialize opération) Quand je fais ceci votre opinion j'ai encore vu com.example.MyClass pas à a.MyClass. L'emplacement de Mapping.txt est identique à proguard-rules est-il vrai? – kibar

+0

@ kibAr comme je comprends votre commentaire, l'emplacement de la cartographie n'est pas le même. Il devrait être dans le dossier ** build/outputs/mapping/release ** à l'intérieur de votre application. –

+0

Quand j'ai changé emplacement mapping.txt j'ai eu une exception 'Avertissement: Exception lors du traitement de la tâche java.io.FileNotFoundException: C: \ Proj \ qweqwe \ mapping.txt (fichier introuvable) Erreur: Exécution a échoué pour la tâche ': qweqwe: transformClassesAndResourcesWithProguardForRelease '. > Le travail a échoué, voir les journaux pour plus de détails » – kibar