Ich habe ein Problem beim Erstellen der APKs meiner Anwendungen.
Wenn ich die App debugge / laufe, funktioniert sie normal. Aber wenn ich versuche, die entsprechende APK zu generieren, gibt Android Studio mir viele Warnungen und einen Fehler:
%Vor% Das Projekt wird von einem Bibliotheksprojekt gebildet, das als externes Projekt in settings.gradle
:
mit allen Abhängigkeiten.
Die build.gradle
der Bibliothek ist
und das Projekt build.gradle
ist
Wie repariere ich es, damit das APK kompiliert werden kann?
BEARBEITEN: Nach dem Hinzufügen vieler -dontwarn-Optionen zu meinem proguard-rules.pro, habe ich den Fehler trotzdem bekommen, und ich kann diese Warnungen nicht auflösen ( Hier gibt es einige Hinweise, aber nicht für diese Warnungen ...):
%Vor%Diese sind zu bereinigen. Die besseren Bibliotheken enthalten jetzt ihre Einstellungen im Bibliothekspaket, aber ältere (oder faule) Bibliotheken sind es immer noch nicht. Hier ist der Prozess, dem ich folge:
error:
und dann mit warning:
beginnen (die Zeilen note:
stoppen den Build nicht). com.newrelic.SomeClass
ist wahrscheinlich für die Bibliothek New Relic). Wenn Sie es nicht finden können, versuchen Sie eine Google-Suche, um zu sehen, ob der Namespace Ihnen helfen kann, den GitHub README
oder etwas anderes aufzuspüren, das möglicherweise identifiziert, welche Bibliothek dieser Namespace enthält. Oder überprüfen Sie das Android Studio & gt; Projekt & gt; Pakete & gt; Libraries -Liste (dauert eine Weile, um das erste Mal anzuzeigen) und den Namespace dort aufzuspüren. Hoffentlich ist der Quellcode verfügbar und enthält die Bibliotheksdetails in den Dateikopfkommentaren. -dontwarn
-Zeilen. Beispiel: -dontwarn com.newrelic.**
(Vergessen Sie nicht das Doppelsternchen, damit es den gesamten Baum unter diesem Namespace ignoriert; andernfalls ignoriert ein einzelnes Sternchen nur die direkten Kinder des Namespace.) dontwarn
-Anweisungen verwenden, müssen Sie Ihre kompilierte App (APK) testen! Weil es sehr wahrscheinlich ist, dass es bei Ihnen abstürzt, obwohl das Debugging (nicht ProGuard) Version lief gut. Stellen Sie sicher, dass Sie alle verwendeten Bibliotheken testen, Logcat-Nachrichten prüfen und sicherstellen, dass Sie alle Code-Pfade / Klassen verwenden, die Sie blind mit dontwarn
! Verwenden Sie entweder den Projekteigenschaften-Dialog in Android Studio oder bearbeiten Sie Ihr Modul build.gradle
und ändern Sie android { buildTypes { release { minifyEnabled true } } }
und setzen Sie sie auf false .
Sie erhalten keine ProGuard-Optimierungen, das APK wird viel größer und der Code wird nicht verschleiert. Aber wenn Ihr Chef es gerade jetzt braucht und Sie keine Zeit zum Debuggen haben, wird es nicht das Ende der Welt sein, es zu deaktivieren.
Obwohl Sie wirklich ProGuard verwenden sollten. Vielleicht ist es Zeit, mit dem Chef darüber zu reden, den Entwicklern mehr Zeit zu geben, die langweiligen technischen Dinge zu tun, die wir brauchen.
Tags und Links apk android-studio proguard