Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


MultiDexApplication no reconocido

Tratando de utilizar MultiDexApplication en mi aplicación, pero la clase no se reconoce cuando intento ampliar la actividad de mi aplicación con ella.

Aquí está mi archivo build.gradle:

  • No se puede instalar mi aplicación recientemente lanzada: Código de error: -504
  • Android Espresso no funciona con Multidex da "No se encontraron pruebas"
  • Java.util.zip.ZipException: entrada duplicada durante packageAllDebugClassesForMultiDex
  • Estudio de Android java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB
  • No encontró la clase "android.support.multidex.MultiDexApplication" en la ruta: DexPathList
  • Gradle - Android Studio crea aplicaciones multidex demasiado lentas
  • apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion '21.0.1' defaultConfig { applicationId 'com.myapp' minSdkVersion 10 targetSdkVersion 21 versionCode 115 versionName '4.8' } buildTypes { debug { debuggable true runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { debuggable false runProguard true zipAlign true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } lintOptions { checkReleaseBuilds false } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:6.1.11' compile 'com.android.support:appcompat-v7:21.0.0' compile 'com.nineoldandroids:library:2.4.0' compile 'com.viewpagerindicator:library:2.4.1@aar' compile project(':facebook') } 

    Puedes ver que estoy compilando el 21, usando las últimas herramientas de compilación y los últimos servicios de Google Play y la biblioteca de soporte.

    ¿Alguien ha conseguido que esto funcione?

  • Firebase agrega un nuevo hijo con el nombre especificado
  • Android - Imagen parpadeante utilizando la animación Alpha fade
  • ¿No se pueden iniciar los proyectos de la biblioteca de Android?
  • ¿Cómo enviar datos a través de PendingIntent a Broadcast?
  • Desarrollando para iPhone o Android? (Como desarrollador de C #)
  • Toque en la pantalla 5 veces en 3 segundos en android
  • 3 Solutions collect form web for “MultiDexApplication no reconocido”

    La clase MultiDexApplication no forma parte de la biblioteca appcompat-v7. Se está enviando en un tarro separado (llamado android-support-multidex).

    Busque el android-support-multidex.jar en / sdk / extras / android / support / multidex / library / libs (disponible en la revisión 21 de la biblioteca de soporte) y cópielo en la carpeta libs de su proyecto.

    Actualización (11/5/2014) :
    El frasco ya está disponible en el repositorio central:

     dependencies { ... compile 'com.android.support:multidex:1.0.0' } 

    Para más información, vea aquí .

    He seguido ESTE post de blog de acuerdo a que MultiDexApplication debe ser incluido en r21 de la biblioteca de soporte.

    Mi IDE tuvo problemas para resolverlo también.

    Lo hice funcionar por ahora con la ayuda del proyecto MULTIDEX github añadiendo (puedes ver más detalles en la página del proyecto):

     android { dexOptions { preDexLibraries = false } } repositories { jcenter() } dependencies { compile 'com.google.android:multidex:0.1' } afterEvaluate { tasks.matching { it.name.startsWith('dex') }.each { dx -> if (dx.additionalParameters == null) { dx.additionalParameters = [] } dx.additionalParameters += '--multi-dex' // enable multidex dx.additionalParameters += "--main-dex-list=$projectDir/multidex.keep".toString() } } 

    Y agregando el archivo $ project_dir / multidex.keep con los siguientes contenidos:

     android/support/multidex/BuildConfig.class android/support/multidex/MultiDex$V14.class android/support/multidex/MultiDex$V19.class android/support/multidex/MultiDex$V4.class android/support/multidex/MultiDex.class android/support/multidex/MultiDexApplication.class android/support/multidex/MultiDexExtractor$1.class android/support/multidex/MultiDexExtractor.class android/support/multidex/ZipUtil$CentralDirectory.class android/support/multidex/ZipUtil.class 

    La página del proyecto github menciona también alguna consideración para el contenido de la implementación de la clase MultiDexApplication:

    • Los campos estáticos en su clase de aplicación se cargarán antes de que se instale el # installbe de MultiDex. Por lo tanto, la sugerencia es evitar los campos estáticos con tipos que se pueden colocar fuera del archivo main.dex principal.
    • Es posible que los métodos de la clase de aplicación no tengan acceso a otras clases que se cargan después de la clase de aplicación. Como workarround para esto, puede crear otra clase (cualquier clase, en el ejemplo anterior, yo uso Runnable) y ejecutar el contenido del método en su interior.

    Tengo la solución 🙂

    Actualice a jdk 8 y cambie la ubicación de JDK en Android Studio en

    Archivo> Estructura del proyecto> Ubicación del SDK

    Buscar y cambiar la ubicación de JDK y hacer clic en Aceptar

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.