Android Studio: ¿Por qué estoy recibiendo un error multi dex en el nuevo proyecto API de Google Maps?
Soy relativamente nuevo en la programación de Android y estoy intentando crear un proyecto de Google Maps. He utilizado la opción de plantilla en Android Studio, y he añadido la clave para la API.
No he añadido nada de mi propio código y dejó el código de la plantilla como es porque sólo quería ejecutar el código y ver lo que parece, sin embargo, sigo recibiendo un error multi dex cuando intento ejecutar esto en el emulador Provocando la falla de la compilación. Es extraño para mí que estoy recibiendo este error porque no he añadido ningún código en absoluto y estoy usando lo que la plantilla de Google Maps tiene de Android Studio.
- La ejecución falló para la tarea ': app: shrinkReleaseMultiDexComponents'
- INSTALL_FAILED_DEXOPT Error en Android 5.0 en modo de liberación
- Android gradle plugin multidex ZipException
- Demasiadas referencias de campo: 70613; Max es 65536
- Ejecutar un tarro multidex independiente en Android Kitkat
Alguien sabe por qué este error aparece en un nuevo proyecto? El error que veo se pega a continuación.
Error: El número de referencias de método en un archivo .dex no puede superar los 64K. Obtenga información sobre cómo resolver este problema en https://developer.android.com/tools/building/multidex.html.
Error: Error de ejecución para la tarea ': 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 'command' C: \ Archivos de programa \ Java \ jdk1.8.0_91 \ bin \ java.exe terminado con valor de salida distinto de cero 2
- ¿Qué paquete para MultiDexTestRunner? Android.support.multidex o com.android.test.runner
- Ejecución de un Espresso Multidexed .APK
- Cómo averiguar cuántos métodos se agregan con una biblioteca en Android Studio / Gradle
- El lanzamiento de la primera aplicación de Android tarda más de 30 segundos y más
- Error: Error de ejecución para la tarea ': app: shrinkReleaseMultiDexComponents'
- Pruebas unitarias Robolectric fallan después de Multidex
- VerifyError en la aplicación multidex al inyectar dependencia con Dagger
- Com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException
Como se cita a continuación:
Probablemente compile toda la API de Play Services usando la compilación 'com.google.android.gms: play-services: 9.2.0' … Ahora podemos compilar selectivamente la API para evitar el límite dex de 64K. Para Google Maps use com.google.android.gms: play-services-maps: 9.2.0 … – Loki Jul 1 at 19:01
Respuesta de Loki trabajado y era muy simple de hacer.
Configuración de servicios de Google Play
Ir a través de este enlace sólo tiene que añadir las dependencias que desea en su aplicación. Esto evitará que el error de 64k exceda.
Codificación feliz.
El problema es que actualmente tiene un gran número de métodos. Sólo puede haber 65536 métodos para dex. Puede intentar habilitar multiDex editando su archivo build.gradle.
android { //stuff defaultConfig { ... // Enable multiDex support. multiDexEnabled true } } dependencies { compile 'com.android.support:multidex:1.0.0' }
También, oops como el cartel mencionado anteriormente en su manifiesto también necesita agregar que está utilizando la clase multidex de la biblioteca de soporte multidex.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.dexapp"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application>
Cambie su configuración de generación de Gradle para habilitar multidex
android { compileSdkVersion 23 buildToolsVersion "24.0.0 rc2" defaultConfig { applicationId "com.try.app" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true }
En su manifiesto agregue la clase MultiDexApplication desde la biblioteca de soporte multidex al elemento de la aplicación.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> </manifest>
Nota: Visite https://developer.android.com/studio/build/multidex.html para obtener más información.
Establezca la propiedad multiDexEnabled en true en defaultConfig. Este error se produce cuando las referencias de método aumentan el límite de 65k. Compruebe las API del servicio de Google Play.
android{ ... defaultConfig { ... multiDexEnabled true } ... }
Esta es una buena fuente para empezar a utilizar la API de Google Maps para Android
He eliminado las dependencias como sugiere Loki y funciona.
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.1.1' compile 'com.google.android.gms:play-services-maps:9.4.0' }
- ¿Por qué mis estados de botones personalizados no funcionan?
- Android Firebase Auth – Obtener la foto del usuario