Chcę dodać połączone usługi lokalizacyjne, ale wyświetla mi się błąd. Pomóż mi.
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "27.0.1"
defaultConfig {
applicationId "com.example.adil.bloodbankapplication"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-auth:11.8.0'
compile 'com.google.firebase:firebase-database:11.8.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'junit:junit:4.12'
compile 'com.android.support:design:26.1.0'
compile 'com.github.joielechong:countrycodepicker:2.1.5'
compile 'com.jaredrummler:material-spinner:1.2.4'
compile 'hanks.xyz:htextview-library:0.1.5'
compile 'com.firebaseui:firebase-ui-database:1.2.0'
compile 'com.google.android.gms:play-services:11.8.0'
}
apply plugin: 'com.google.gms.google-services'
android
android-multidex
Muhammad Adil Sattar
źródło
źródło
MyApplication extends android.support.multidex.MultiDexApplication
?Rozwiązałem problem z poniższym rozwiązaniem:
W pliku kompilacji Gradle dodaj zależność:
A następnie w sekcji „defaultConfig” dodaj:
źródło
zmodyfikuj aplikację lub moduł
build.gradle
Według oficjalnej dokumentacji
https://developer.android.com/studio/build/multidex
źródło
Co to są pliki dex: pliki aplikacji na Androida (APK) zawierają wykonywalne pliki kodu bajtowego w postaci plików wykonywalnych Dalvik (DEX), które zawierają skompilowany kod użyty do uruchomienia aplikacji.
Powód tego wyjątku: specyfikacja DEX ogranicza całkowitą liczbę metod, do których można odwoływać się w pojedynczym pliku DEX, do 65 536 (limit referencyjny 64 KB) - w tym metody frameworku Android, metody biblioteczne i metody we własnym kodzie.
Krok 01. Dodaj następującą zależność w następujący sposób
W przypadku użytkowników innych niż Androidx,
Dla użytkowników Androidax
Krok 02:
Po dodaniu tych projektów synchronizacji i przed uruchomieniem projektu, należy zbudować projekt przed uruchomieniem. w przeciwnym razie otrzymasz wyjątek.
źródło
Możesz śledzić ten .
Wersje platformy wcześniejszej niż Android 5.0 (API poziom 21) używają środowiska wykonawczego Dalvik do wykonywania kodu aplikacji. Domyślnie Dalvik ogranicza aplikacje do jednego pliku kodu bajtowego class.dex na plik APK. Aby obejść to ograniczenie, możesz dodać bibliotekę obsługi multidex do swojego projektu:
Jeśli minSdkVersion ma wartość 21 lub wyższą, wszystko, co musisz zrobić, to ustawić multiDexEnabled na true w pliku build.gradle na poziomie modułu, jak pokazano tutaj:
źródło
kiedy używasz zależności, więc twoje metody się zwiększają! Google ma na to rozwiązanie. o nazwie Multidex!
UWAGA: upewnij się, że min. SDK wynosi ponad 14.
w swoim build.gradle:
DLA UŻYTKOWANIA androidX:
Aby uzyskać więcej informacji, przejdź do oryginalnego linku:
https://developer.android.com/studio/build/multidex
źródło
Cześć problem jest tutaj, usuń go
dlaczego?
Uwaga: nie używaj połączonego celu usług. Wprowadza dziesiątki bibliotek, nadmuchując twoją aplikację. Zamiast tego określ tylko interfejsy API usług Google Play, których używa Twoja aplikacja.
I używaj tego, czego potrzebujesz. https://developers.google.com/android/guides/setup
Jak w przypadku usługi lokalizacyjnej
Do przesyłania w chmurze
źródło
Jeśli budujesz DEBUG APK , po prostu dodaj:
wewnątrz
buildTypes
a jeśli budujesz APLIKACJĘ RELEASE , dodaj
multiDexEnabled true
blok wydania jako-źródło
W przypadku projektów trzepotania możesz również rozwiązać ten problem
otwórz swój \ android \ app \ build.gradle
powinieneś mieć następujące:
Jeśli minSdkVersion ma wartość 21 lub wyższą, wszystko, co musisz zrobić, to ustawić multiDexEnabled na true w defaultConfig. Lubię to
jeśli twoja minSdkVersion jest ustawiona na 20 lub mniej, dodaj multiDexEnabled true do defaultConfig
I zdefiniuj wdrożenie
Na koniec powinieneś mieć:
Aby uzyskać więcej informacji, przeczytaj to: https://developer.android.com/studio/build/multidex
źródło
Po prostu wykonaj następujące czynności:
I dodaj poniżej zależności w
build.gradle
pliku na poziomie aplikacjiźródło
Spróbuj dodać to w aplikacji defaultConfig {}. Pomoże mi to rozwiązać problem
źródło
W pliku kompilacji Gradle dodaj zależność:
lub
lub
A następnie w sekcji „defaultConfig” dodaj:
W obszarze targetSdkVersion
Teraz jeśli napotkasz ten błąd
Błąd: nie można rozwiązać: multidex-instrumentation Open File
Musisz zmienić ocenę na 3.0.1
I umieść następujący kod w pliku gradle-wrapper.properties
DistributionUrl = https: //services.gradle.org/distribution/gradle-4.1-all.zip
Wreszcie
dodaj klasę Aplikacja w projekcie I zapoznaj się z nią na AndroidManifest, który rozszerza się z MultiDexApplication
}
Uruchom projekt najpierw, aby utworzyć błąd, a następnie wyczyść projekt
Wreszcie, uruchom ponownie projekt i ciesz się nim
źródło
Jeśli używasz minifyEnabled z Proguard, prawdopodobnie nie będziesz musiał włączać multi-dex. Zgadzam się z MG Developer, że w miarę możliwości powinieneś unikać multi-dex. Moim rozwiązaniem było włączenie multi-dex tylko dla kompilacji debugowania. minifyEnabled rozwiązuje problem kompilacji wersji
źródło
Nie mam pojęcia dlaczego, może dlatego, że rozwijam się w Kotlinie, ale aby naprawić ten błąd, muszę w końcu stworzyć klasę, która rozwija się w
MultiDexApplication
następujący sposób:i w moim
Manifest.xml
muszę ustawićaby nikogo nie mylić, robię również:
w przypadku systemu Androidx działa to również dla mnie:
...
<application android:name="android.support.multidex.MultiDexApplication">
nie działa dla mnie
źródło
Masz zbyt wiele metod. Plik dex Androida ma limit 65536 metod, które możesz mieć.
Na początek, jeśli nie potrzebujesz wszystkich API usług Google Play i samej lokalizacji, zamień
z
Możesz odnieść się do tej strony, aby poznać sposoby jej uniknięcia lub, jeśli to konieczne, aby zezwolić na więcej: https://developer.android.com/studio/build/multidex.html
źródło
Wszystko, co musiałem zrobić, to ustawić Minimalną wersję zestawu SDK na 21 w Plik> Struktura projektu> Aplikacja> Smaki
źródło
dodaj swój plik android / app / build.gradle
źródło
Ten błąd napotkałem dwukrotnie i rozwiązaniem tego jest; Sprawdź plik oceny aplikacji, aby zobaczyć docelowy zestaw SDK, jeśli jest to 20 lub więcej, po prostu dodaj jedną linię do swojego
defaultconfig { multiDexEnabled true }
W przeciwnym razie, jeśli docelowy zestaw SDK jest mniejszy niż 20, dodaj wiersz do defaultConfig, a także dodaj zależność
Sprawdź ten link, aby uzyskać więcej.
https://developer.android.com/studio/build/multidex#mdex-gradle
źródło
Korzystanie z obsługi multidex powinno być ostatecznością. Domyślnie kompilacja stopni gromadzi mnóstwo zależności przechodnich dla twojego APK. Zgodnie z zaleceniami w Dokumentach dla programistów Google pierwsza próba usunięcia niepotrzebnych zależności z projektu.
Za pomocą wiersza polecenia przejdź do głównego katalogu projektów Android. Można uzyskać drzewo zależności kompilacji w następujący sposób.
Możesz uzyskać pełną listę drzewa zależności
Następnie usuń niepotrzebne lub przechodnie zależności z build.gradle aplikacji. Na przykład, jeśli Twoja aplikacja korzysta z zależności o nazwie „com.google.api-client”, możesz wykluczyć biblioteki / moduły, których nie potrzebujesz.
Następnie w Android Studio wybierz Build> Analyze APK ... Wybierz plik APK wydania / debugowania, aby zobaczyć zawartość. To da ci metody i referencje liczą się w następujący sposób.
źródło
W kompilacji: aplikacja
źródło
źródło
Błąd jest spowodowany liczbą zależności klasowych w pliku Gradle aplikacji. Jeśli klasy przekraczają 72 400, możesz użyć multidex jako rozwiązania do lepszej obsługi indeksowania plików. Dowiedz się więcej tutaj: https://developer.android.com/studio/build/multidex
źródło