Vor ein paar Tagen habe ich mein Android Studio aktualisiert und jetzt habe ich ein Problem.
Eigentlich versuche ich, eine APK-Datei aus meinem Projekt zu erstellen, um meine App auf einem echten Gerät zu testen, und wenn ich auf Build -> Build Apk klicke, erhalte ich einige Fehler in Message Gradle Build. Ich weiß nicht, warum diese Fehler kommen, bitte erläutern Sie auch den Grund.
Fehler
Fehler: Fehler beim Konvertieren von Bytecode in Dex:
Ursache: com.Android.dex.DexException: Mehrere Dex-Dateien definieren Lcom/Android/Volley/VolleyError.
Fehler: Ausführung fehlgeschlagen für Task ': app: transformClassesWithDexForDebug'. com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException: org .gradle.process.internal.ExecException: Process 'Befehl' C:\Programme\Java\jdk1.8.0_51\bin\Java.exe '' wurde mit dem Exit-Wert ungleich Null beendet
build.gradle Datei
apply plugin: 'com.Android.application'
Android {
signingConfigs {
}
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.dovezeal.gapp"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:appcompat-v7:23.0.1'
//compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:support-v4:23.3.0'
compile 'com.Android.support:design:23.0.1'
compile 'com.Android.support:design:23.1.1'
// Volley
compile 'com.Android.volley:volley:1.0.0'
//compile 'com.mcxiaoke.volley:library:1.0.+'
/* compile files('libs/com.mcxiaoke.volley library-1.0.0.jar')*/
// RecyclerView
compile 'com.Android.support:recyclerview-v7:23.0.+'
// A simple way to define and render UI specs on top of your Android UI.
compile 'org.lucasr.dspec:dspec:0.1.1'
compile files('libs/library-1.0.0.jar')
// YouTube Player
compile files('libs/YouTubeAndroidPlayerApi.jar')
// GOSN
/* compile files('libs/gson-2.2.3.jar')*/
}
Bearbeiten - 1
Wie janki gadhiya in ihrem Kommentar unten sagte, minifyEnabled true
ändern und versuchen, multiDexEnabled true
unter defaultConfig hinzuzufügen
Mit diesen Änderungen sind beide Fehler weg, aber nun wird der folgende Fehler angezeigt.
build.gradle -Datei
apply plugin: 'com.Android.application'
Android {
signingConfigs {
}
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.dovezeal.gapp"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license.txt'
exclude 'META-INF/notice.txt'
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt')
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:appcompat-v7:23.0.1'
//compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:support-v4:23.3.0'
compile 'com.Android.support:design:23.0.1'
compile 'com.Android.support:design:23.1.1'
// as you already compiled gradle for volley here
compile 'com.Android.volley:volley:1.0.0'
// RecyclerView
compile 'com.Android.support:recyclerview-v7:23.0.+'
compile 'org.lucasr.dspec:dspec:0.1.1'
// you don't need this so comment the below line.
//compile files('libs/library-1.0.0.jar')
// YouTube Player
compile files('libs/YouTubeAndroidPlayerApi.jar')
}
Bearbeiten: Erklärungen
Ihre Fehler 1 - 2 : bedeuten, dass Sie mehr als 65.000 Methoden in Ihrem Projekt haben, also habe ich Ihnen gesagt, multiDexEnable true
zu setzen.
Ihr Fehler 3 : bedeutet, dass Sie mehr als eine Bibliothek mit der Implementierung für die Klasse Request$Priority.class
haben. Der Compiler ist also verwirrt bei der Auswahl. Es zeigt also den error Duplicate entry . Dies wird durch packaging options
gelöst, so dass Sie doppelte Dateien verwenden können.
Fügen Sie dies in Ihrem Build Gradle hinzu
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
Ich bekomme auch den gleichen Fehler. Beim Hinzufügen von kompilieren Sie 'com.google.firebase: firebase-ads: 10.2.0' aber es wird entfernt, wenn ich wie folgt vorgehe:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
compile 'com.google.firebase:firebase-ads:10.2.0'
}
apply plugin: 'com.google.gms.google-services'**
und in BuildVarient verwenden Sie den Debugging-Modus.
Ich denke es wird dir helfen.
versuchen Sie während der Aktualisierung von Firebase alle Google Play-Dienste, alle Bibliotheken zu aktualisieren. das hat für mich funktioniert. Ich hoffe es funktioniert in einigen Fällen.