Ich möchte die neue Multidex-Unterstützungsbibliothek verwenden, um das Methodenlimit für eine meiner Apps zu überschreiten.
Mit Android Lollipop hat Google eine Multidex-Unterstützungsbibliothek eingeführt, die das Multidexen einfach macht.
Welche Schritte sind erforderlich, um diese Bibliothek zu verwenden und meine App mit Multidex-Unterstützung zu erstellen?
android
gradle
android-multidex
Janusz
quelle
quelle
Antworten:
Bearbeiten:
Android 5.0 (API Level 21) und höher verwendet ART, das Multidexing unterstützt. Wenn Sie
minSdkVersion
21 Jahre oder älter sind, wird die Multidex-Unterstützungsbibliothek daher nicht benötigt.Ändern Sie Ihre
build.gradle
:Wenn Sie Komponententests ausführen, sollten Sie dies in Ihre
Application
Klasse aufnehmen:Oder machen Sie einfach Ihre
application
KlasseMultiDexApplication
Für weitere Informationen ist dies eine gute Anleitung.
quelle
gradle-wrapper.properties
) Die wichtigsten Punkte: 1 Ihre buildToolsVersion muss 21.1.1 oder höher sein. 2 AddmultiDexEnabled true
zu Ihrem DefaultConfig Ihrer build.gradle (Hinweis Es ist kein=
) 3 hinzufügen'com.android.support:multidex:1.0.0'
android:name="android.support.multidex.MultiDexApplication"
zumapplication
TagAndroidManifest.xml
ausreichend?..if your minSdkVersion is set to 20 or lower you must use...
'compile 'com.android.support:multidex:1.0.1'
.Die folgenden Schritte sind erforderlich, um Multi-Dexing zu starten:
Fügen Sie Ihrem Projekt android-support-multidex.jar hinzu. Das JAR befindet sich in Ihrem Android SDK-Ordner / sdk / extras / android / support / multidex / library / libs
Jetzt können Sie entweder Ihre Anwendungsklasse für Apps MultiDexApplication erweitern lassen
oder Sie überschreiben attachBaseContext wie folgt:
Ich habe den Override-Ansatz verwendet, da dies die Klassenhierarchie Ihrer Anwendungsklasse nicht beeinträchtigt.
Jetzt kann Ihre App Multi Dex verwenden. Der nächste Schritt besteht darin, gradle davon zu überzeugen, eine Multi-Dexed-Apk zu bauen. Das Build-Tools-Team arbeitet daran, dies zu vereinfachen. Im Moment müssen Sie jedoch Folgendes zum Android-Teil Ihrer Apps build.gradle hinzufügen
Und das Folgende zum allgemeinen Teil Ihrer Apps build.gradle
Weitere Informationen finden Sie auf Alex Lipovs Blog .
quelle
EINFACH, um Multidex zu aktivieren, müssen Sie ...
Außerdem müssen Sie Ihre Manifestdatei ändern. Fügen Sie in Ihrem Manifest die MultiDexApplication-Klasse aus der Multidex-Unterstützungsbibliothek wie folgt zum Anwendungselement hinzu
quelle
android:name="android.support.multidex.MultiDexApplication
BitteFügen Sie in Ihrem build.gradle diese Abhängigkeit hinzu:
Fügen Sie diese Zeile erneut in Ihrer build.gradle- Datei zum defaultConfig- Block hinzu:
Anstatt Ihre Anwendungsklasse von Application zu erweitern, erweitern Sie sie von MultiDexApplication . mögen :
Jetzt kannst du loslegen! Und falls Sie es brauchen, ist alles, was Sie tun
MultiDexApplication
müssenquelle
build.gradle
AndroidManifest.xml
quelle
Schritt 1: Ändern Sie build.grade
Schritt 2: Festlegen der Anwendungsklasse
Schritt 3: Ändern Sie grade.properties
Es wird klappen!. Vielen Dank.
quelle
Hier ist ein aktueller Ansatz ab Mai 2020 mit Android X.
Zum
minSdk
> = 21Sie müssen nichts tun. Alle diese Geräte verwenden die Android RunTime (ART) VM, die nativ Multidex unterstützt.
Zum
minSdk
<21Stellen Sie in Ihrer Modulebene
build.gradle
sicher, dass die folgenden Konfigurationen ausgefüllt sind:Dann Ihre
src/main/AndroidManifest.xml
Bedürfnisse zu erklären ,MultiDexApplication
wie dieapplication:name
:quelle
Zu AndroidManifest.xml hinzufügen:
ODER
in der attachBaseContext-Methode Ihrer benutzerdefinierten Anwendung
oder Ihre benutzerdefinierte Anwendung erweitert MultiDexApplication
Fügen Sie multiDexEnabled = true in Ihr build.gradle ein
quelle
Zuerst sollten Sie es mit Proguard versuchen (Dies bereinigt den gesamten Code, der nicht verwendet wird).
quelle
Wenn Sie Multi-Dex in Ihrem Projekt aktivieren möchten, gehen Sie einfach zu gradle.builder
und fügen Sie dies in Ihre Abhängigkeit ein
dann musst du hinzufügen
Öffnen Sie dann eine Klasse und erweitern Sie sie zu Application. Wenn Ihre App die Application-Klasse erweitert, können Sie die oncrete () -Methode überschreiben und aufrufen
Multidex aktivieren.
und schließlich in Ihr Manifest hinzufügen
quelle
gradle.builder
?Alle obigen Antworten sind fantastisch
Fügen Sie dies auch hinzu, da Ihre App sonst ohne Grund wie meine abstürzt
quelle
Das Hinzufügen dieses Snips im build.gradle funktioniert ebenfalls einwandfrei
quelle
Multi_Dex.java
quelle