2017-09-14 1 views
6

Wenn ich versuche, die Größe meiner APK-Datei zu verkleinern, verwende ich shrinkResources true in meiner Funktion Build Gradle. aber es Beschwerden Error:Resource shrinker cannot be used for libraries.shrinkResources true kann nicht für die Instant Apps-Funktion verwendet werden?

Dieser Artikel fragen Sie uns es https://medium.com/jet-stories/make-your-app-instant-33855ab5d02b

verwenden

Habe ich etwas falsch gemacht oder ist das wirklich nicht von Instant-Apps unterstützt?

+1

Dies könnte ein mögliches Problem in den letzten Gradle-Versionen sein. 'shrinkResources' funktioniert für mich auf AS 3.0 Canary 4. Aber als ich versucht habe,' shrinkResources 'in AS 3 beta 4 zu verwenden, habe ich den gleichen Fehler wie Sie. Kannst du einen Fehler einreichen, dann verlinke ihn wieder hier? Es wäre hilfreich für alle, danke! https://issuetracker.google.com/issues/new?component=316045&template=1018787 –

+0

Danke. Abgelegt unter https://issuetracker.google.com/issues/new?component=316045&template=1018787 – Elye

+0

@Elye Können Sie den Link zu dem Problem teilen? Ich kann es weder https://issuetracker.google.com/issues?q=componentid:316045%20shrinkResources noch https://issuetracker.google.com/issues?q=componentid:316045 finden. Vielen Dank! –

Antwort

3

Von dem, was ich aus dem Artikel verstehen (ich habe es nur schnell lesen, noch in meiner Leseliste pending) wird shrinkResources true nur durch removing unused resources zu reduzieren APK Größe benötigt wird, aber es ist nicht eine formale Anforderung von Instant-Apps. Ich denke, die Toolchain kann nicht entscheiden, ob eine Ressource in einer Bibliothek unbenutzt bleibt, da die endgültige APK nicht erstellt wird.

Wenn also in Ihrem Projekt keine ungenutzten Ressourcen vorhanden sind, sollte dies kein Problem darstellen und könnte entfernt werden.

Dann gibt es eine Sache, die vielleicht in Ihrem Projekt falsch ist (ohne Instant Apps selbst ausprobiert zu haben, nur gelesen und gesehen Google IO Gespräche): von dem, was ich verstehe, sind alle Module einer Instant-App APKs, keine Bibliotheken. Also, wenn Sie die shrinkResources true auf die APKs anwenden, sollten Sie gut gehen. Wenn Sie Bibliotheken in Ihrem Projekt haben, die zum Zusammenstellen der endgültigen APK-Module verwendet werden, entfernen Sie dort shrinkResources true und lassen Sie sie einfach in den Modulen.

+1

Funktion in Instant App wird in APK gedreht. So ist es ein APK und Es ist komisch, dass AS-Beschwerden, die 'shrinkResources' nicht verwendet werden können. – Elye

+0

Danke für die Klarstellung! Dann scheint es mir wie ein Käfer, ich stimme zu. ve bereits geöffnet –

1

Ich denke, das ist nicht und AndroidStudio Bug, aber ein Gradle Bug. Ich versuche mit Jenkins zu bauen, mit einer aktualisierten Version von Gradle (vorher verwendet com.android.tools.build:gradle.2.2.3, aktualisiert es zu com.android.tools.build:gradle:3.0.1) und ich bekomme immer noch den Fehler

"> Ressourcenverkleinerung kann nicht für Bibliotheken verwendet werden."

+0

Wenn Sie ein anderes Problem haben, können Sie als Frage stellen und einen Fehler bei Google einreichen und dann wieder hier verlinken? Es wäre für alle hilfreich, danke! https://issuetracker.google.com/ Probleme/neu? Komponente = 316045 & Vorlage = 1018787 –

Verwandte Themen