support - proguard android studio tutorial
Android MĂșltiples archivos dex definen Lcom/google/android/gms/common/api/zza (3)
Aunque tuve el mismo error pero la solución anterior no funcionó para mí. Pude resolver el error degradando la versión de mi biblioteca firebase-ui de 2.0.0 a 1.2.0 y añadí lo siguiente al archivo build.gradle del nivel del proyecto:
allprojects {
repositories {
jcenter()
// Add the following
maven {
url ''https://maven.fabric.io/public''
}
}
}
Construir el proyecto y desplegar la aplicación en el emulador con el nivel de API 22 o 25 va bien, pero cuando intento crear APK o implementar la aplicación en mi dispositivo real con nivel de API 16, aparece el siguiente error:
Error:Execution failed for task '':app:transformClassesWithDexForDebug''.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/common/api/zza;
Mi proyecto archivo build.gradle :
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:2.2.2''
classpath ''com.neenbedankt.gradle.plugins:android-apt:1.8''
classpath ''me.tatarka:gradle-retrolambda:3.3.0-beta4''
classpath ''com.google.gms:google-services:3.0.0''
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Mi archivo build.gradle de la aplicación:
apply plugin: ''com.android.application''
apply plugin: ''com.neenbedankt.android-apt''
apply plugin: ''me.tatarka.retrolambda''
apply plugin: ''com.google.gms.google-services''
android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
defaultConfig {
applicationId "<aplication id here>"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
final SUPPORT_LIBRARY_VERSION = ''25.0.1''
final DAGGER_VERSION = ''2.4''
final BUTTERKNIFE_VERSION = ''8.0.1''
final TIMBER_VERISON = ''4.3.0''
final LEAKCANARY_VERSION = ''1.4''
final FIREBASE_VERSION = ''10.0.0''
final FIREBASE_UI_VERSION = ''1.0.0''
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile "com.android.support:appcompat-v7:$SUPPORT_LIBRARY_VERSION"
compile "com.android.support:design:$SUPPORT_LIBRARY_VERSION"
compile "com.android.support:recyclerview-v7:$SUPPORT_LIBRARY_VERSION"
compile "com.android.support:cardview-v7:$SUPPORT_LIBRARY_VERSION"
compile "com.android.support:support-v4:$SUPPORT_LIBRARY_VERSION"
compile "com.android.support:support-vector-drawable:$SUPPORT_LIBRARY_VERSION"
compile "com.google.dagger:dagger:$DAGGER_VERSION"
apt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
compile "com.google.firebase:firebase-database:$FIREBASE_VERSION"
compile "com.firebaseui:firebase-ui-database:$FIREBASE_UI_VERSION"
compile "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
apt "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION"
compile "com.jakewharton.timber:timber:$TIMBER_VERISON"
debugCompile "com.squareup.leakcanary:leakcanary-android:$LEAKCANARY_VERSION"
androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', {
exclude group: ''com.android.support'', module: ''support-annotations''
})
testCompile ''junit:junit:4.12''
}
Nota: si agrego la línea "multiDexEnabled true" a mi DefaultConfig , obtendré el siguiente error:
Error:Execution failed for task '':app:transformClassesWithJarMergingForDebug''.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/common/api/zza.class
Mueve esto:
apply plugin: ''com.google.gms.google-services''
en la parte inferior de su archivo app / build.gradle.
para mí, simplemente actualicé la biblioteca de Firebase a la versión más nueva y simplemente funcionó