Ich möchte fusionierte Ortungsdienste hinzufügen, aber es zeigt mir einen Fehler. Hilf mir.
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
quelle
quelle
MyApplication extends android.support.multidex.MultiDexApplication
?Ich habe mein Problem mit der folgenden Lösung behoben:
Fügen Sie in der Gradle-Builddatei die Abhängigkeit hinzu:
Fügen Sie dann im Abschnitt "defaultConfig" Folgendes hinzu:
quelle
Ändern Sie die Ihrer App oder Ihres Moduls
build.gradle
Laut offizieller Dokumentation
https://developer.android.com/studio/build/multidex
quelle
Was sind Dex-Dateien: APK- Dateien ( Android App) enthalten ausführbare Bytecode-Dateien in Form von DEX-Dateien (Dalvik Executable), die den kompilierten Code enthalten, der zum Ausführen Ihrer App verwendet wird.
Grund für diese Ausnahme: Die DEX-Spezifikation begrenzt die Gesamtzahl der Methoden, auf die in einer einzelnen DEX-Datei verwiesen werden kann, auf 65.536 (64-KB-Referenzlimit) - einschließlich Android-Framework-Methoden, Bibliotheksmethoden und Methoden in Ihrem eigenen Code.
Schritt 01. Fügen Sie die folgende Abhängigkeit wie folgt hinzu
Für Nicht-Androidx-Benutzer
Für Androidx-Benutzer
Schritt 02:
Stellen Sie nach dem Hinzufügen dieser Synchronisierungsprojekte und vor dem Ausführen des Projekts sicher, dass Sie vor dem Ausführen ein Projekt erstellen. Andernfalls erhalten Sie eine Ausnahme.
quelle
Sie können folgen dieser .
Versionen der Plattform vor Android 5.0 (API-Level 21) verwenden die Dalvik-Laufzeit zum Ausführen von App-Code. Standardmäßig beschränkt Dalvik Apps auf eine einzelne Klassen.dex-Bytecode-Datei pro APK. Um diese Einschränkung zu umgehen, können Sie Ihrem Projekt die Multidex-Unterstützungsbibliothek hinzufügen:
Wenn Ihre minSdkVersion auf 21 oder höher festgelegt ist, müssen Sie multiDexEnabled in Ihrer build.gradle-Datei auf Modulebene nur auf true setzen, wie hier gezeigt:
quelle
Wenn Sie Abhängigkeiten verwenden, haben sich Ihre Methoden erhöht! Google hat eine Lösung dafür. das heißt Multidex!
HINWEIS: Stellen Sie sicher, dass das minimale SDK über 14 liegt.
in Ihrem build.gradle:
FÜR androidX GEBRAUCH:
Weitere Informationen finden Sie unter dem ursprünglichen Link:
https://developer.android.com/studio/build/multidex
quelle
Hallo Problem ist hier entfernen
Warum?
Hinweis: Verwenden Sie nicht das kombinierte Ziel für Spieldienste. Es bringt Dutzende von Bibliotheken und bläht Ihre Anwendung auf. Geben Sie stattdessen nur die spezifischen Google Play-Dienst-APIs an, die Ihre App verwendet.
Und nutzen Sie, was Sie brauchen. https://developers.google.com/android/guides/setup
Wie für den Ortungsservice
Für Cloud Messaging
quelle
Wenn Sie DEBUG APK erstellen , fügen Sie einfach hinzu:
Innerhalb
buildTypes
und wenn Sie RELEASE APK
multiDexEnabled true
erstellen , fügen Sie im Release-Block as-quelle
Bei Flatterprojekten können Sie dieses Problem auch lösen
Öffne dein \ android \ app \ build.gradle
Sie sollten Folgendes haben:
Wenn Ihre minSdkVersion auf 21 oder höher festgelegt ist, müssen Sie multiDexEnabled in der defaultConfig nur auf true setzen. So was
Wenn Ihre minSdkVersion auf 20 oder niedriger eingestellt ist, fügen Sie multiDexEnabled true zur defaultConfig hinzu
Und definieren Sie die Implementierung
Am Ende sollten Sie haben:
Weitere Informationen finden Sie unter: https://developer.android.com/studio/build/multidex
quelle
Gehen Sie einfach wie folgt vor:
Fügen Sie in Ihrer
build.gradle
Datei auf App-Ebene die folgenden Abhängigkeiten hinzuquelle
Bitte versuchen Sie dies in Ihrer App defaultConfig {} hinzuzufügen. Dies hilft mir, das Problem zu lösen
quelle
Fügen Sie in der Gradle-Builddatei die Abhängigkeit hinzu:
oder
oder
Fügen Sie dann im Abschnitt "defaultConfig" Folgendes hinzu:
Unter targetSdkVersion
Nun, wenn Sie auf diesen Fehler stoßen
Fehler: Fehler beim Auflösen: Multidex-Instrumentierung Datei öffnen
Sie müssen Ihren Gradle auf 3.0.1 ändern
Und fügen Sie den folgenden Code in die Datei gradle-wrapper.properties ein
DistributionUrl = https: //services.gradle.org/distributions/gradle-4.1-all.zip
Schließlich
Klasse Applition in Projekt hinzufügen und in das AndroidManifest einführen, das von MultiDexApplication erweitert wird
}}
Führen Sie das Projekt zuerst aus, um einen Fehler zu erstellen, und bereinigen Sie dann das Projekt
Starten Sie das Projekt schließlich neu und genießen Sie es
quelle
Wenn Sie minifyEnabled mit Proguard verwenden, müssen Sie Multi-Dex wahrscheinlich nicht aktivieren. Ich stimme MG Developer zu, dass Sie versuchen sollten, Multi-Dex nach Möglichkeit zu vermeiden. Meine Lösung bestand darin, Multi-Dex nur für Debug-Builds zu aktivieren. minifyEnabled löst das Problem bei Release-Builds
quelle
Ich habe keine Ahnung warum, vielleicht liegt es daran, dass ich in Kotlin entwickle, aber um diesen Fehler zu beheben, muss ich endlich eine Klasse erstellen, die sich
MultiDexApplication
wie folgt erstreckt :und in meinem muss
Manifest.xml
ich setzenum niemanden zu verwirren, mache ich auch:
für androidx funktioniert das auch bei mir:
...
<application android:name="android.support.multidex.MultiDexApplication">
funktioniert bei mir nicht
quelle
Sie haben zu viele Methoden zählen. Die Android-Dex-Datei hat ein Limit von 65536 Methoden, die Sie haben dürfen.
Für den Anfang, wenn Sie nicht die gesamte Google Play Services-API und nur den Speicherort benötigen, ersetzen Sie diese
mit
Auf dieser Seite finden Sie Möglichkeiten, dies zu vermeiden oder bei Bedarf weitere Informationen zuzulassen: https://developer.android.com/studio/build/multidex.html
quelle
Ich musste lediglich die Mindest-SDK-Version unter Datei> Projektstruktur> App> Flavours auf 21 setzen
quelle
füge deine Datei android / app / build.gradle hinzu
quelle
Ich bin zweimal auf diesen Fehler gestoßen und die Lösung dafür ist; Überprüfen Sie Ihre App-Gradle-Datei, um Ihr Ziel-SDk zu sehen. Wenn es 20 oder höher ist, fügen Sie einfach eine Zeile zu Ihrem hinzu
defaultconfig { multiDexEnabled true }
Andernfalls, wenn Ihr targetSDK kleiner als 20 ist, fügen Sie die Zeile zu Ihrer defaultConfig hinzu und fügen Sie auch eine Abhängigkeit hinzu
Überprüfen Sie diesen Link für mehr.
https://developer.android.com/studio/build/multidex#mdex-gradle
quelle
Die Verwendung von Multidex-Unterstützung sollte der letzte Ausweg sein. Standardmäßig sammelt gradle build eine Menge transitiver Abhängigkeiten für Ihre APK. Versuchen Sie zunächst, wie in Google Developers Docs empfohlen , unnötige Abhängigkeiten aus Ihrem Projekt zu entfernen.
Navigieren Sie über die Befehlszeile zu Android Projects Root. Sie können den Kompilierungsabhängigkeitsbaum wie folgt abrufen.
Sie können eine vollständige Liste des Abhängigkeitsbaums erhalten
Entfernen Sie dann die unnötigen oder transitiven Abhängigkeiten aus Ihrer App build.gradle. Wenn Ihre App beispielsweise die Abhängigkeit "com.google.api-client" verwendet, können Sie die nicht benötigten Bibliotheken / Module ausschließen.
Wählen Sie dann in Android Studio Build> APK analysieren ... Wählen Sie die Release / Debug-APK-Datei aus, um den Inhalt anzuzeigen. Dadurch erhalten Sie die folgenden Methoden und Referenzen.
quelle
In Build: App
quelle
quelle
Der Fehler wird durch die Anzahl der Klassenabhängigkeiten in Ihrer App Gradle-Datei verursacht. Wenn die Klassen 72.400 überschreiten, möchten Sie möglicherweise Multidex als Lösung verwenden, um die Dateiindizierung besser zu handhaben. Weitere Informationen finden Sie hier: https://developer.android.com/studio/build/multidex
quelle