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:

  • Gradle - Android Studio crea aplicaciones multidex demasiado lentas
  • RoboGuice 3.0 NoClassDefFoundError: roboguice.inject.ContextScopedRoboInjector
  • Estudio de Android java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB
  • Android Múltiples archivos dex definen Lcom / google / android / gms / common / api / zza
  • ¿Puedo activar multidex en la compilación de depuración de Android solamente?
  • Android Studio 3.0 Beta 1: Error al resolver: com.android.support:multidex:1.0.2
  • 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?

  • Cómo seleccionar varios lugares (sublime) en código en Android Studio?
  • Recreación de la llamada de api flask en Android con Retrofit
  • eclipse me dice que mi proyecto tiene errores, nada es rojo-destacado
  • Android - Ejemplo del Bloc de notas - ¿Por qué poblar en onCreate?
  • Viñeta en Android
  • ¿Cómo puede comprobar si la música está reproduciendo utilizando un receptor de difusión?
  • 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.