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:
- DexIndexOverflowException: No se puede combinar el nuevo índice 65772 en una instrucción no jumbo !: Jumbo Mode? Y / o Multi-Dex? ¿Qué hay detrás de la escena?
- Android Studio Lint - establece el nivel de API para la pelusa
- El lanzamiento de la primera aplicación de Android tarda más de 30 segundos y más
- Error en la instalación de Multidex
- ¿Hay una manera de limitar el importe del método en el archivo principal dex mientras se utiliza la función MultiDex en Android Studio
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?
- ¿Puedo activar multidex en la compilación de depuración de Android solamente?
- Pruebas unitarias Robolectric fallan después de Multidex
- Android Multidex y bibliotecas de soporte
- Android ProGuard + MultiDex causa ClassNotFoundException
- ¿Qué es android multidex?
- Shrink Debug Multi Dex Component; No se puede leer dir / allclasses.jar
- No se puede resolver import android.support.multidex.MultiDex después de cambiar a Multidex más reciente
- Ejecución de un Espresso Multidexed .APK
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
- Orientación desde Android Acelerómetro
- Inserción de puntos de interrupción en Eclipse para un programa de Android