2016-05-18 9 views
0

Ich habe eine Java-Bibliothek geschrieben, die Benutzer nicht in der Lage sein soll, den Quellcode zu sehen. Daher habe ich Proguard verwendet, um durch Java-Bibliothek zu debuggen und AAR freizugeben. Ich versuche, die Verschleierung in einem Demo-Projekt zu testen, indem ich es als AAR-Datei importiere. Wenn ich die Release-AAR-Datei importiere, ist alles verschleiert und ich kann die Symbole nicht einmal auflösen.Wie kann ich das verschluckte Proguard-Modul in Android Studio importieren?

Gibt es eine Möglichkeit, den Quellcode zu verschleiern, aber den AAR in ein anderes Projekt importieren zu lassen? Ähnlich wie eine statische Bibliothek/ein Framework in iOS.

Dank

Antwort

0

Sie müssen sicherstellen, dass die Klassennamen und Methoden zu halten, für die Klassen ‚wie besehen‘, die extern von Anwendungen zugegriffen wird Ihre Bibliothek.

zum Beispiel alle öffentlichen Methoden zu halten und von einer Klasse deklarierten Variablen von außerhalb Anwendungen verwendet, fügen Sie folgendes zu Ihrem proguard-project.txt Datei:

-keep public class com.your.class {public *;} 

Siehe here für weitere Informationen.

+0

Danke für die schnelle Antwort. Ich habe die Verschleierung zur Arbeit bekommen! Eine letzte Sache ist, ich bekomme 'java.lang.NoClassDefFoundError: Failed Auflösung von: Lcom/google/common/Hash/Hashing;' für einige der externen Bibliothek, die ich verwendet habe. Ich versuchte '' '' - öffentliche Klasse com.google.common. ** { public *; } '' '' aber es scheint nicht zu funktionieren. – sonoluminescence

+0

Versuchen Sie, '-keepattributes Exceptions, InnerClasses, Deprecated, EnclosingMethod 'hinzuzufügen –