Es gibt ein Detailthema here bei Android Entwickler Benutzerhandbuch.
Grundsätzlich haben Sie viele Möglichkeiten, um die Größe Ihrer apk tatsächlich zu reduzieren, indem Sie Ihre Ressourcen schrumpfen. Ich habe in Kürze über sie diskutiert, und ich denke, Enable strengen Referenzprüfungen unten diskutiert sollte Ihr Problem lösen, aber Sie können alle verfügbaren Optionen zur weiteren Verringerung Ihrer apk Größe betrachten.
Customizing Ressourcen, die
zu halten, wie der Doc sagt, verwenden Sie die unten xml bei res/raw/keep.xml, zu entscheiden, was zu halten und was nicht zu halten:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@layout/l_used*_c,@layout/l_used_a,@layout/l_used_b*"
tools:discard="@layout/unused2" />
Und Ruhe wird von Build-System gepflegt werden (Dies ist nützlich, wenn Sie verschiedene Build-Varianten verwenden).
aktivieren strenge Referenzprüfungen
Wenn Sie Ihren Code oder Ihrer Bibliothek referenzieren Ressourcen wie unten haben:
getResources().getIdentifier("image1", "drawable", getPackageName())
Dann verhält sich defensiv in diesem Fall Ressource shrinker von Ausfall- und Marken Alle Ressourcen mit einem übereinstimmenden Namensformat werden möglicherweise verwendet und können nicht entfernt werden.
Also, in den res/raw/keep.xml folgenden
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:shrinkMode="strict" />
Hinzufügen dies Ihr Problem lösen soll.
Entfernen Sie nicht verwendete alternative Ressourcen
Ressourcen Shrinker keine alternative Ressourcen entfernen, wie alternative ziehbar Ressourcen für unterschiedliche Bildschirmdichten, alternative String-Ressourcen für verschiedene Sprachen, usw.
So, Sie können selbst auswählen, was Sie behalten möchten, z. B. aus Ihrer Build-Datei: Sie möchten die Zeichenfolgen in 'en' locale beibehalten:
android {
defaultConfig {
...
resConfigs "en", "fr"
}
}
Dies kann die Größe erheblich reduzieren.
Wenn noch Ressourcen von Ressource shrinker gehalten werden, dann schließen Sie diese manuell die erste diskutiert Methode verwenden, und sehen, ob und bauen richtig, wenn nicht Grund Ressourcen für die Aufbewahrung von Ressourcen shrinker wird, kompiliert wird, dann klar geworden, von der Ausnahme beim Bauen geworfen.
Hoffe es hilft!
Bitte beachten Sie diesen Link erhalten Sie die Antwort http://StackOverflow.com/a/40742213/4069985 –
Es gibt nichts eingebaut dafür. Sie können versuchen [dieses Gradle-Skript] (https://Stackoverflow.com/a/34525498/115145), obwohl ich es noch nicht geschossen habe. – CommonsWare
@SrinivasKeerhipprakasam danke – Hades