Ich versuche Proguard in meiner App zu verwenden setze den Proguard auf "True" und dann beginne ich mit dem Import von lib, wenn ich proguard verwende, indem ich dies
-keepnames class com.somepackage.*
mit meinem Paketnamen Die App wird abgestürzt, wenn ich versuche, die signierte APK zu verwenden. Ich weiß, dass dies eine dumme Frage ist, aber ich bin seit 5 Stunden nicht mehr in der Lage, eine einfache Lösung zu finden, da ich etwa 20 Lib verwende. Ich folgte auch diesem . Plz führe mich in diesem wie kann ich das tun?
Dies ist mein Proguard-Regelklassencode
%Vor%Ich kann jetzt keine signierte Apk erzeugen. der Fehler ist.
%Vor%Job fehlgeschlagen, Details finden Sie in den Protokollen
Jeder Hinweis wird hilfreich sein. Konsolenausgabe
%Vor%Was ist schiefgelaufen? Ausführung fehlgeschlagen für Task ': app: transformClassesAndResourcesWithProguardForRelease'.
Job fehlgeschlagen, Details finden Sie in den Protokollen
Versuchen Sie Folgendes: Führen Sie die Option --stacktrace aus, um den Stack-Trace abzurufen. Führen Sie die Option --info oder --debug aus, um mehr Protokollausgaben zu erhalten.
Bearbeiten build.gradle
%Vor%Eine andere Methode, die ich für proguard-rule.pro
probiert habe %Vor%Grund: Nicht jede Klasse oder Bibliothek ist mit aktiviertem Proguard optimiert. Was Proguard also tut ist, dass Klassen entfernt werden, wenn sie nicht optimiert werden, was zu Abstürzen und Fehlern im Projekt führt.
Lösung: Halten Sie in Ihrer proguard.cfg-Datei die Klassen oder Bibliotheken, die nicht von progaurd unterstützt werden. Probieren Sie den hier beschriebenen Fang aus:
Versuchen Sie Folgendes hinzuzufügen:
Oder wenn Sie v4 lib verwenden:
Wenn Sie das neueste Android-Studio verwenden, könnten Sie dies als proguard-rules.pro
Versuchen Sie in Ihrem Fall -dontwarn auch mit dem Klassennamen zu verwenden. Wie Ihr Fehler zeigt, kann die circleimageview-Bibliothek nicht optimiert werden. Versuchen Sie also, dies ebenfalls hinzuzufügen:
Wenn immer noch nicht funktioniert, als Downgrade Ihre circleimageview Bibliothek:
compile 'de.hdodenhof:circleimageview:1.3.0'
Dies funktioniert für mich.
1) Alle Anmerkungen behalten
%Vor%2) Behalten Sie, wenn Sie irgendwelche pojos oder Modelle und Klassen haben, die für Netzwerkaufruf
verwendenBeispiel:
%Vor%3) Für alle Bibliotheken, die Sie verwenden, halten Sie die folgenden Regeln ein:
Beispiel:
%Vor%Sie müssen sogar ähnliche Progardregeln für "falttabbar" beibehalten, da es auch eine Bibliothek ist
Wenn die obige Lösung nicht löst, run ./gradlew app:dependencies
in Ihrem Repository und Senden Sie mir die Liste der Abhängigkeiten
Die gleiche Version für alle Unterstützungsbibliotheken ist ebenfalls sehr wichtig. Manchmal haben Bibliotheken rekursive Abhängigkeiten, wobei jede eine andere Version hat, die zu diesem Fehler führen kann. Lauf:
%Vor%, um die Abhängigkeiten für jede Bibliothek anzuzeigen und zu überprüfen, ob sie alle dieselbe Version haben. Ich sehe bereits, dass Sie 25.1.0 und 25.2.0 Versionen von Support-Bibliotheken verwenden. Außerdem sind einige Ihrer Bibliotheken alt und verwenden daher wahrscheinlich alte Versionen.
Versuchen Sie zu verwenden:
%Vor%anstelle von:
%Vor%Tags und Links android proguard android-proguard signed-apk