Progruard und R8 sind veraltet - Android Studio 3.6

9

Nach dem Upgrade meines Android Studio auf 3.6 erhalte ich veraltete Warnungen in Bezug auf Proguard und R8. Bedeutet das, dass wir in unseren Projekten keine Verschleierung verwenden sollten, oder gibt es eine andere gleichwertige Option, die wir beim Erstellen im Release-Modus in Betracht ziehen sollten?

Die Option 'android.enableR8' ist veraltet und sollte nicht mehr verwendet werden. Es wird in einer zukünftigen Version des Android Gradle-Plugins entfernt und ermöglicht Ihnen nicht mehr, R8 zu deaktivieren. Betroffene Module: etc.

Rixment
quelle
Können Sie bitte die Nachrichten teilen, die Sie erhalten?
Anton Baranenko
Können Sie klarstellen, was Sie in diesem Zusammenhang unter "veralteten Warnungen" verstehen? Der eigentliche Text der Warnungen könnte helfen.
Peter Tefft
Ich erinnere mich nicht an die genaue Nachricht, aber sie besagte, dass sie veraltet ist. Randnotiz: Ich habe es nach dem Upgrade auf Android Studio 3.6
Rixment
Um eine Antwort zu erhalten, sollten Sie die vollständige, genaue Warnmeldung veröffentlichen. Zum Beispiel ist die useProGuardEinstellung vor einiger Zeit veraltet - vielleicht haben Sie das gesehen und erinnern sich falsch daran.
Michael
Ich habe diese Woche auf R8 useProGuardumgestellt und alles aus meinem Gradle entfernt
Rixment

Antworten:

7

Bedeutet das, dass wir in unseren Projekten keine Verschleierung verwenden sollten?

Nein. Sie können Verschleierungs- und Optimierungswerkzeuge verwenden.

Gibt es eine andere äquivalente Option, die wir beim Erstellen im Release-Modus berücksichtigen sollten?

Wenn Sie android.enableR8 = truein Ihrem haben gradle.properties, entfernen Sie es als R8 als Standardwerkzeug und die android.enableR8Einstellung selbst ist veraltet, was zu diesen Verfallswarnungen führt.

Wenn Sie android.enableR8 = falseProguard zur Optimierung und Verschleierung verwenden müssen, sollten Sie stattdessen auf R8 migrieren.

laalto
quelle
Wie kann das Projekt verschleiert werden? Ich habe alle angegebenen Eigenschaften entfernt und gesagt, dass die Abhängigkeit von R8 von build.gradle entfernt werden soll. Ich kann das Projekt nicht mehr kompilieren. Ich erhalte R8NullPointerException. Was ist das?
Lena Bru
Das sieht nach etwas aus, das über den Rahmen des Kommentarbereichs hinausgeht.
Laalto
@laalto Was ich aus Ihrer Antwort erhalten habe, ist, dass R8 automatisch funktioniert, sodass Sie nichts hinzufügen müssen android.enableR8 = true, oder?
Mohamed
@Mohamed Das verstehe ich auch, vorausgesetzt du hast das Android Gradle Plugin 3.6 oder neuer.
Laalto