Varios archivos dex definen Lcom / google / firebase / FirebaseException
Encontré un problema con la integración de Firebase. En primer lugar, he añadido reglas al archivo build.gradle
nivel build.gradle
:
buildscript { repositories { maven { url "http://dl.bintray.com/populov/maven" } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.google.gms:google-services:3.0.0' } } allprojects { repositories { maven { url "http://dl.bintray.com/populov/maven" } jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
Y el módulo Gradle archivo:
- No se encontró ninguna versión que coincida con com.android.tools.build:gradle:1.10+
- Android java.exe terminado con valor de salida no nulo 1
- Forzar a usar el mismo certificado para firmar diferentes "buildTypes" que están configurados para un particular "productFlavor"?
- Gradle assembleDebug y preDexDebug fallan incluso para nuevo proyecto
- Android: el paquete está en conflicto con un paquete existente con el mismo nombre
apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24" defaultConfig { applicationId "com.example.app" minSdkVersion 14 targetSdkVersion 24 versionCode 2 versionName "0.9" } buildTypes { /// } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.google.firebase:firebase-core:9.0.2' compile 'com.google.firebase:firebase-crash:9.0.2' } apply plugin: 'com.google.gms.google-services'
Durante la construcción del proyecto, obtengo el error:
Error: Error al convertir bytecode a dex: Causa: com.android.dex.DexException: Varios archivos dex definen Lcom / google / firebase / FirebaseException;
La razón del error es clara, pero no compilé ninguna biblioteca dos veces. ¿Debo excluir la clase FirebaseException
del proceso de construcción manualmente? ¿Si es así, cómo? Tal vez esto es un error dentro de las dependencias de Firebase?
Gracias.
- Android gradle construir que la cobertura de código para pruebas robolectric
- Nueva reliquia no funciona (gradle + estudio androide)
- Gradle no logra resolver la dependencia en Android Studio
- Problema de compilación de Gradle: actualización de Quickblox y httpclient en el último SDK23 de Android
- Cómo depurar el módulo de la biblioteca android en Android Studio?
- Android Studio 0.5.0 - No hay auto código de terminación y el reconocimiento de sintaxis de errores después de actualizar
- Error: (3, 0) Causa: org / apache / commons / lang3 / StringUtils
- Varios archivos dex definen Landroid / support / v4 / accessibilityservice / AccessibilityServiceInfoCompat con Gradle
Tuve este problema con el módulo react-native-google-signin
. Como las instrucciones de cómo modificar build.gradle
menudo no están actualizadas, incompletas o simplemente definidas en múltiples proyectos no relacionados, el proyecto se compiló sólo después de copiar la configuración del proyecto de ejemplo react-native-google-signin
. Resulta que el orden de las sentencias es importante, así como exclude group
comando de exclude group
. El resultado final se parecía a esto (en app/build.gradle
):
dependencies { ... compile 'com.google.android.gms:play-services-auth:9.2.1' compile(project(":react-native-google-signin")) { exclude group: "com.google.android.gms" } } task copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into 'libs' } apply plugin: 'com.google.gms.google-services'
El build.gradle
superior incluyó un classpath adicional de build.gradle
como de costumbre:
buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.2.2' classpath 'com.google.gms:google-services:3.0.0' } }
Después de estos cambios la construcción terminó sin ningún error de Multiple dex
.
Parece que has alcanzado el límite de conteo de métodos . Intenta eliminar firebase
dependencias de firebase
y cuenta los métodos de verificación para tu aplicación (por ejemplo, con este complemento de gradle (si no eliminas estas dependencias, no podrás construir tu proyecto en absoluto, así, usar el complemento de count de métodos ).
Firebase es una biblioteca enorme – 17k + métodos. Depende de toneladas de cosas. Una cosa que puedes hacer es comprobar la lista de dependencias haciendo clic en este botón en "methodscount.com":
Si ya tiene algunos de estos en su proyecto, puede intentar excluirlos:
compile ('com.google.firebase:firebase-core:9.0.2') { exclude module: 'play-services-base' exclude module: 'support-v4' exclude module: 'support-annotations' }
Si esto no ayuda, entonces puede que desee configurar multidex para su proyecto.
FireBase es una enorme biblioteca, por lo que necesita habilitar el soporte multidex en su aplicación.
dependencies { compile ('com.google.firebase:firebase-core:9.0.2') { exclude module: 'play-services-base' exclude module: 'support-v4' exclude module: 'support-annotations' } compile 'com.android.support:multidex:1.0.1' } defaultConfig { // Enabling multidex support. multiDexEnabled true }
Encontré este error cuando estaba usando firebase-ui: 2.0.0. Me las arreglé para resolverlo degradando a 'com.firebaseui:firebase-ui:1.2.0'
y añadió la siguiente línea en nivel de proyecto build.gradle:
allprojects { repositories { jcenter() // Add the following maven { url 'https://maven.fabric.io/public' } } }
En caso de que ayude a alguien, yo estaba golpeando un problema similar, fue causado por el plugin de Gradle para los servicios de Google que trae una dependencia que entró en conflicto con Firebase.
En mi nivel superior build.gradle tuve, en buildscript:
classpath 'com.google.gms:google-services:3.0.0'
Que estaba trayendo en (automáticamente) las dependencias que estaban en conflicto con, en el build.gradle de mi aplicación:
compile 'com.firebaseui:firebase-ui-auth:2.2.0'
Un poco confuso como yo sólo tenía una dependencia de compilación y se rascaba la cabeza lo que podría ser conflictivo.
Quité el complemento google-services gradle y resolvió el problema. Supongo que también podría encontrar la versión correcta 🙂
Gracias a este post , solo revisa y actualiza tus versiones de dependencias de Google a la última versión.
Podría arreglar mi problema. El problema era que BaseGameUtils seguía utilizando / referenciando una versión anterior de play-services. Se agregó la versión correcta, y funciona ahora. Supongo que omitiré BaseGameUtils para mi próximo proyecto.
Agregue este código dentro de android en build.gradle
dexOptions { preDexLibraries = false }
- No se puede tomar el progreso en la carga de archivos POST HTTP (Android)
- Pasar los toques a la vista bajo