Chcę użyć nowej biblioteki obsługi Multidex, aby przełamać limit metod dla jednej z moich aplikacji.
Wraz z Androidem Lollipop Google wprowadził bibliotekę obsługi wieluidex, która ułatwia multidex.
Jakie kroki są potrzebne do korzystania z tej biblioteki i tworzenia aplikacji z obsługą wieluidex?
android
gradle
android-multidex
Janusz
źródło
źródło
Odpowiedzi:
Edytować:
Android 5.0 (poziom API 21) i nowszy używa ART, który obsługuje multidexing. Dlatego jeśli masz
minSdkVersion
21 lat lub więcej, biblioteka obsługi multidex nie jest potrzebna.Zmodyfikuj
build.gradle
:Jeśli przeprowadzasz testy jednostkowe, będziesz chciał uwzględnić to w swojej
Application
klasie:Lub po prostu
application
przedłuż swoją klasęMultiDexApplication
Aby uzyskać więcej informacji, to jest dobry przewodnik.
źródło
gradle-wrapper.properties
) Kluczowe punkty: 1 Twój buildToolsVersion musi być 21.1.1 lub wyższy. 2 dodajmultiDexEnabled true
do domyślnej konfiguracji swojego build.gradle (zauważ, że nie ma=
) 3 dodaj'com.android.support:multidex:1.0.0'
android:name="android.support.multidex.MultiDexApplication"
doapplication
tagu jestAndroidManifest.xml
wystarczające?..if your minSdkVersion is set to 20 or lower you must use...
'compile 'com.android.support:multidex:1.0.1'
.Aby rozpocząć multi dexing, potrzebne są następujące kroki:
Dodaj android-support-multidex.jar do swojego projektu. Jar można znaleźć w folderze Android SDK / sdk / extras / android / support / multidex / library / libs
Teraz możesz pozwolić, aby klasa aplikacji aplikacji rozszerzała MultiDexApplication
lub nadpisujesz attachBaseContext w ten sposób:
Użyłem metody nadpisywania, ponieważ nie ma to wpływu na hierarchię klas Twojej klasy aplikacji.
Teraz Twoja aplikacja jest gotowa do użycia multi-dex. Następnym krokiem jest przekonanie Gradle do zbudowania multi-dexed apk. Zespół narzędzi do kompilacji pracuje nad ułatwieniem tego, ale na razie musisz dodać następujące elementy do części aplikacji dla systemu Android build.gradle
A oto ogólna część twoich aplikacji build.gradle
Więcej informacji można znaleźć na blogu Alexa Lipova .
źródło
PO PROSTU, aby włączyć multidex, musisz ...
musisz także zmienić swój plik manifestu. W swoim manifeście dodaj klasę MultiDexApplication z biblioteki obsługi multidex do elementu aplikacji, takiego jak ten
źródło
android:name="android.support.multidex.MultiDexApplication
W pliku build.gradle dodaj tę zależność:
ponownie w pliku build.gradle pliku dodaj tę linię do bloku defaultConfig :
Zamiast rozszerzać klasę aplikacji z Application, rozszerz ją z MultiDexApplication ; lubić :
teraz jesteś gotowy! A jeśli tego potrzebujesz, wszystko
MultiDexApplication
jestźródło
build.gradle
AndroidManifest.xml
źródło
Krok 1: Zmień build.grade
Krok 2: ustawienie w klasie Application
Krok 3: Zmień grade.properties
To będzie działać!. Dzięki.
źródło
Oto aktualne podejście z maja 2020 r., Z Androidem X.
Dla
minSdk
> = 21Nie musisz nic robić. Wszystkie te urządzenia używają maszyny wirtualnej Android RunTime (ART), która natywnie obsługuje multidex.
Dla
minSdk
<21W swojej modułowej -level
build.gradle
, zapewniają, że następujące konfiguracje są wypełniane:Następnie
src/main/AndroidManifest.xml
musisz zadeklarowaćMultiDexApplication
jakoapplication:name
:źródło
Dodaj do AndroidManifest.xml:
LUB
w metodzie attachBaseContext aplikacji niestandardowej
lub niestandardowa aplikacja rozszerza MultiDexApplication
dodaj multiDexEnabled = true w swoim build.gradle
źródło
Najpierw powinieneś spróbować z Proguard (to wyczyść cały kod nieużywany)
źródło
Jeśli chcesz włączyć multi-dex w swoim projekcie, po prostu przejdź do gradle.builder
i dodaj to w swojej zależności
wtedy musisz dodać
Następnie otwórz klasę i rozszerz ją do Application Jeśli Twoja aplikacja używa rozszerzeń klasy Application, możesz zastąpić metodę oncrete () i wywołać
aby włączyć multidex.
i na koniec dodaj do manifestu
źródło
gradle.builder
?Wszystkie powyższe odpowiedzi są niesamowite
Dodaj to również, w przeciwnym razie Twoja aplikacja ulegnie awarii bez żadnego powodu
źródło
W systemie Androidx klasyczne biblioteki wsparcia już nie działają.
Prostym rozwiązaniem jest użycie następującego kodu
W twoim
build.gradle
plikuW swoim manifeście po prostu dodaj atrybut name do tagu aplikacji
Jeśli Twoja aplikacja jest przeznaczona dla interfejsu API 21 lub nowszego, funkcja multidex jest domyślnie włączona.
Teraz, jeśli chcesz pozbyć się wielu problemów, które napotykasz, próbując obsługiwać multidex - najpierw spróbuj użyć zmniejszania kodu przez ustawienie
minifyEnabled true
.źródło
samo dodanie tego fragmentu w pliku build.gradle również działa dobrze
źródło
Multi_Dex.java
źródło