2015-12-17 5 views
8

entfernt immer ich shrinkResources auf true setzen sich wie folgt:shrinkResources auf true gesetzt, aber alle nicht verwendeten Ressourcen (insbesondere Drawables) nicht

releasepro { 
    minifyEnabled true 
    shrinkResources true 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    applicationIdSuffix ".pro" 
} 

Aber nur wenige ungenutzte Ressourcen abzieht. Mir ist bewusst, dass Gradle etwas rät und Ressourcen hinterlässt, die nicht sicher sind, dass sie ungenutzt sind. Gibt es eine Möglichkeit, alle ungenutzten Ressourcen zu 100% zu entfernen?

Ich habe gelesen, über die Einstellung der shrinkMode zu strikt in einem anderen Thread. Wird das helfen? Ich konnte es nicht versuchen, da ich nicht herausfinden konnte, wo ich es einstellen sollte. Nach Beispielen und Dokumenten gesucht, aber leider nicht auf die richtige Seite gelangen.

Gibt es eine Möglichkeit, 100% unbenutzte Ressourcen zu entfernen?

Antwort

5

R.raw.Keep (xml-Datei)

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:shrinkMode="strict" /> 

Vergessen Sie nicht, diese Ressource aus .java-Quelldatei zu verweisen. Für weitere Details siehe this

Wenn Sie sich Sorgen über die Größe Ihrer apk-Datei machen, dann ist es auch eine gute Übung, um Bilddateien zu verkleinern. Das ist RGB-Kanal in indizierten Kanal konvertieren, dies kann bis zu 50% mehr Speicherplatz sparen.

Verwenden Sie diese Seite, um Ihre Bilder zu verkleinern media4x.com

+0

Ich habe keep.xml unter res \ raw \ Ordner hinzugefügt. Habe den Fehler: ** URI ist nicht registriert **. Dies wurde behoben, indem Schemas und DTDs unter Einstellungen 'http: // schemas.android.com/tools' hinzugefügt wurden. Jetzt bekomme ich einen neuen Fehler auf dem Ressourcen-Tag in keep.xml: ** Die Deklaration des Elements 'Ressourcen' konnte nicht gefunden werden **. Was mache ich falsch? – AndroidMechanic

+0

ok stellt sich heraus, wenn ich einfach den Fehler ignoriere, der gezeigt wird, die Deklaration des Elements 'Ressource' nicht zu finden, funktioniert es noch wie erwartet. Aber immer noch neugierig, warum der Fehler zeigt und wie man es entfernt. Ich mag die rote Hervorhebung nicht ohne Grund. Außerdem müssen Sie nicht auf die Aufbewahrungsressource aus einer .java-Datei verweisen. einfach 'tools: keep =" @ raw/* "' hinzufügen, um keep.xml hat den Trick gemacht. Und ich denke, das ist sinnvoller, als mit einer falschen Referenz auf Compiler zu täuschen. Korrigiere mich, wenn ich falsch liege. – AndroidMechanic

+0

Ich wurde kein Fehler angezeigt, Erstellen von gefälschten Referenz stellen Sie sicher, dass es auf allen Geräten funktioniert. Auch wenn 'tools: keep =" @ raw/* "' den Trick gemacht hat, ist es großartig. Achten Sie darauf, auch einige andere Geräte zu überprüfen. Best of Luck –

Verwandte Themen