Android & Proguard - wie kann man Code verschleiern, aber nicht optimieren?

8

Ich möchte Proguard verwenden, um den Code einer App zu verschleiern. Ich brauche keine Optimierungen, und ich brauche Proguard nicht, um irgendwelche Klassen oder Methoden auszublenden. Alles was ich will, ist Verschleierung. Die App verwendet mehrere Bibliotheksprojekte.

Ich habe meinen Kopf gegen die Wand geschlagen, um es zu erreichen, und es funktioniert nicht so, wie ich es möchte. Ich sehe NoSuchMethodExceptions, die bei der Ausführung in die App geworfen wurden, obwohl ich dachte, dass ich die Schrumpfungsoptionen von Proguard ausgeschaltet hätte.

Was sind die magischen Einstellungen, um Proguard JUST zu verschleiern und keinen ANY-Code zu optimieren?

AKTUALISIEREN. Ich habe durch Versuch und Irrtum bestätigt, dass es der Verschleierungsvorgang (nicht die Optimierung oder das Verkleinern) ist, der die NoSuchMethodExceptions verursacht.

Proguard.cfg

%Vor%     
Ollie C 11.05.2012, 15:52
quelle

1 Antwort

6

Ich hatte vor einiger Zeit ähnliche Probleme und löste es für mich mit roher Gewalt und Glück. Meine proguard.cfg ist ähnlich, aber ich habe die Zeilen:

%Vor%

Ich kann mich nicht erinnern, woher ich die Idee für diese Optimierungsmöglichkeiten hatte, aber sie scheinen für mich zu funktionieren.

Es gibt immer den catch all switch

%Vor%

(Gibt an, dass die Eingabeklassendateien nicht optimiert werden. Standardmäßig ist die Optimierung aktiviert; alle Methoden werden auf Bytecodeebene optimiert.)

was vielleicht passender ist.

Schließlich habe ich Methoden, auf die nur in XML-Dateien (Click-Handler) verwiesen wird, die explizit mit

beibehalten werden müssen %Vor%     
NickT 11.05.2012, 16:14
quelle

Tags und Links