android - tools - gradle version
Entrada duplicada para '': app: transformClassesWithJarMergingForDebug'' (4)
Existe una falta de coincidencia entre las versiones de servicios de juego que se utilizan en sus paquetes (es decir, un paquete que utiliza la versión x, otro paquete que usa la versión y).
Ninguna de las otras respuestas explica por qué debería usar la versión xyz
servicios de juego o cómo verificar cuál es aplicable. Puede verificarlo con ./gradlew :app:dependencies
Obtendrás una salida similar a
| /--- com.google.android.gms:play-services-tasks:10.2.6 --> (11.0.1)(*)
+--- com.google.android.gms:play-services-basement:11.0.1 (*)
`` `
A partir de este resultado, puede ver la última versión de los servicios de juego utilizados en su proyecto (en el ejemplo anterior, es 11.0.1). En su archivo build.gradle
, debe especificar esta versión para todos los servicios de juego (todos deben ser de la misma versión).
Estoy importando mi proyecto de Eclipse, mientras construyo un APK que encontré después de un error.
Error: ejecución fallida para la tarea
com.android.build.api.transform.TransformException: java.util.zip.ZipException: entrada duplicada: com / google / android / gms / plus / PlusOneButton $ OnPlusOneClickListener.class
Error: ejecución fallida para la tarea '': gruhini: transformClassesWithJarMergingForDebug''.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: entrada duplicada: com / google / android / gms / games / Game.class
Error: ejecución fallida para la tarea '': gruhini: transformClassesWithJarMergingForDebug''.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: entrada duplicada: com / google / android / gms / auth / GoogleAuthException.class
Error: ejecución fallida para la tarea '': gruhini: processDebugGoogleServices''.
Corrija el conflicto de versión actualizando la versión del complemento de Google-Services (la información sobre la última versión está disponible en https://bintray.com/android/android-tools/com.google.gms.google-services/ ) o actualizando la versión de com.google.android.gms a 9.0.0.
mi build.gradle:
apply plugin: ''com.android.application''
android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
useLibrary ''org.apache.http.legacy''
packagingOptions {
exclude ''META-INF/DEPENDENCIES''
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE.txt''
exclude ''META-INF/**''
}
defaultConfig {
applicationId "com.gruhini"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.txt''
}
}
dexOptions {
incremental true
preDexLibraries false
//javaMaxHeapSize "1G" // 2g should be also OK
}
}
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 project('':eclipseProject'')
compile files(''libs/activation.jar'')
compile files(''libs/additionnal.jar'')
compile files(''libs/google-play-services.jar'')
compile files(''libs/httpclient-4.1.jar'')
compile files(''libs/httpcore-4.1.jar'')
compile files(''libs/httpmime-4.1.jar'')
compile files(''libs/itextpdf-5.2.1.jar'')
compile files(''libs/mail.jar'')
compile files(''libs/mpandroidchartlibrary-1-7-4.jar'')
compile ''com.android.support:support-v4:24.2.1''
testCompile ''junit:junit:4.12''
compile ''com.google.android.gms:play-services:10.2.0''
compile ''com.android.support:appcompat-v7:24.2.1''
compile ''com.android.support:design:24.2.1''
}
Hazlo dentro de Android en tu archivo gradle de esta manera.
android{
configurations {
all*.exclude group: ''com.android.support'', module:''support-annotations''
}
}
en lugar de escribir dentro de la opción dex.
su archivo gradle se verá como ...
aplicar el complemento: ''com.android.application''
android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
useLibrary ''org.apache.http.legacy''
configurations {
all*.exclude group: ''com.android.support'', module:''support-annotations''
}
packagingOptions {
exclude ''META-INF/DEPENDENCIES''
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE.txt''
exclude ''META-INF/**''
}
defaultConfig {
applicationId "com.gruhini"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.txt''
}
}
dexOptions {
incremental true
preDexLibraries false
//javaMaxHeapSize "1G" // 2g should be also OK
}
}
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', {
})
compile project('':eclipseProject'')
compile files(''libs/activation.jar'')
compile files(''libs/additionnal.jar'')
compile files(''libs/google-play-services.jar'')
compile files(''libs/httpclient-4.1.jar'')
compile files(''libs/httpcore-4.1.jar'')
compile files(''libs/httpmime-4.1.jar'')
compile files(''libs/itextpdf-5.2.1.jar'')
compile files(''libs/mail.jar'')
compile files(''libs/mpandroidchartlibrary-1-7-4.jar'')
compile ''com.android.support:support-v4:24.2.1''
testCompile ''junit:junit:4.12''
compile ''com.google.android.gms:play-services:10.2.0''
compile ''com.android.support:appcompat-v7:24.2.1''
compile ''com.android.support:design:24.2.1''
}
Funciona correctamente al eliminar las siguientes líneas de Gradle. compilar fileTree (dir: ''libs'', incluye: ''* .jar'')
com.android.build.api.transform.TransformException: java.util.zip.ZipException: entrada duplicada: com / google / android / gms / plus /
Problema
compile files(''libs/google-play-services.jar'') // Remove this line
compile ''com.google.android.gms:play-services:10.2.0'' //10.0.1 or 9.6.0
Ambos son iguales. Llama a uno de ellos. Luego Clean-Rebuild y Run .
Prueba con este nivel de aplicación build.gradle
apply plugin: ''com.android.application''
apply plugin: ''com.google.gms.google-services''
android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
applicationId "com.gruhini"
minSdkVersion 15
targetSdkVersion 25
versionCode 12
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
useLibrary ''org.apache.http.legacy''
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
packagingOptions {
exclude ''META-INF/DEPENDENCIES''
exclude ''META-INF/NOTICE''
exclude ''META-INF/LICENSE''
}
}
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''
})
testCompile ''junit:junit:4.12''
compile project('':eclipseProject'')
compile files(''libs/activation.jar'')
compile files(''libs/additionnal.jar'')
compile files(''libs/httpclient-4.1.jar'')
compile files(''libs/httpcore-4.1.jar'')
compile files(''libs/httpmime-4.1.jar'')
compile files(''libs/itextpdf-5.2.1.jar'')
compile files(''libs/mail.jar'')
compile files(''libs/mpandroidchartlibrary-1-7-4.jar'')
compile ''com.android.support:support-v4:25.1.0''
compile ''com.google.android.gms:play-services:10.0.1''
compile ''com.android.support:appcompat-v7:25.1.0''
compile ''com.android.support:design:25.1.0''
}
Proyecto Level build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:2.2.2'' //2.2.3
classpath ''com.google.gms:google-services:3.0.0''
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}