Shrink Debug Multi Dex Component; No se puede leer dir / allclasses.jar

Estoy desarrollando una aplicación que permite Multidex para evitar el límite de 65k. Quiero agregar una biblioteca externa en el tipo Jar (es decir, iPay Jar SDK). He sincronizado el Gradle y he tenido éxito pero fallé en ejecutar el proyecto.

El mensaje de error se muestra como a continuación

Error:Execution failed for task ':app:shrinkDebugMultiDexComponents'. 

java.io.IOException: Can't read [/[dir]/app/build/intermediates/multi-dex/debug/allclasses.jar] (Can't process class [com/ipay/IpayAcitivity.class] (Unknown verification type [14] in stack map frame))

Este es mi código Gradle

 apply plugin: 'com.android.application' apply plugin: 'android-apt' def AAVersion = '3.2' buildscript { repositories { mavenCentral() } dependencies { classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' } } repositories { mavenCentral() mavenLocal() } apt { arguments { androidManifestFile variant.outputs[0].processResources.manifestFile resourcePackageName '[My Package]' } } dependencies { apt "org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion" compile fileTree(dir: 'libs', include: ['*.jar']) //Libs folder contains: org.apache.http.legacy.jar //and ipay88_androidv7.jar compile 'com.loopj.android:android-async-http:1.4.5' compile 'com.github.rey5137:material:1.2.1' compile 'com.jpardogo.materialtabstrip:library:1.0.9' compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.android.support:recyclerview-v7:23.0.1' compile 'com.google.android.gms:play-services:8.1.0' compile 'com.facebook.android:facebook-android-sdk:4.7.0' compile 'com.android.support:multidex:1.0.1' compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+' } android { compileSdkVersion 23 buildToolsVersion "23.0.1" useLibrary 'org.apache.http.legacy' defaultConfig { applicationId "[My Application Id]" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled = true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main { manifest.srcFile 'src/main/AndroidManifest.xml' java.srcDirs = ['src/main/java', 'build/source/apt/debug'] resources.srcDirs = ['src/main/res'] res.srcDirs = ['src/main/res'] assets.srcDirs = ['src/main/assets'] } beta { resources.srcDirs = ['app/src/beta/res'] res.srcDirs = ['app/src/beta/res'] } } signingConfigs { release { ... } } } 

Antes de añadir este tipo de biblioteca externa (por ejemplo iPay Jar SDK), la aplicación se ejecutaba correctamente. Pero el problema surgió después de haber agregado iPay Jar SDK (segunda Jar Library).

Para más información, ya había seguido esta guía en https://developer.android.com/tools/building/multidex.html Pero no funcionó mi proyecto.

¿Cuál es su sugerencia para corregir este error?

2 Solutions collect form web for “Shrink Debug Multi Dex Component; No se puede leer dir / allclasses.jar”

Prueba esto:

 public class MyApplication extends MultiDexApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext( base ); } @Override public void onCreate() { MultiDex.install(getTargetContext()); super.onCreate(); } } 

Parece que su biblioteca no es compatible con Multidex. Así que mejor actualizar la biblioteca a la última versión (si hay una actualización disponible). O utilice únicamente la API de servicios de Google Play requerida en su aplicación y deshágase de Multidex. Reemplazar

  compile 'com.google.android.gms:play-services:8.1.0' (the whole library) 

Esto con algo que usas en tu aplicación como esta

  compile 'com.google.android.gms:play-services-ads:8.1.0' (library only for ads) 

Y eliminar esta compile 'com.android.support:multidex:1.0.1'

Puedes encontrar toda la API de servicios de Google Play aquí https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project

  • Conmutación entre configuraciones de ejecución de dos módulos sin Clean cuando uno de ellos utiliza Multidex
  • La ejecución falló para la tarea ': app: shrinkReleaseMultiDexComponents'
  • Error: Error de ejecución para la tarea ': app: transformClassesWithDexForDebug'
  • ¿Qué paquete para MultiDexTestRunner? Android.support.multidex o com.android.test.runner
  • Error: Se encontró un problema con la configuración de task collectDebugMultiDexComponents
  • Activar la opción `--multi-dex` en hormiga para Android
  • Xamarin Android con multidex - error en modo de depuración
  • Android ProGuard + MultiDex causa ClassNotFoundException
  • Twitter Fabric + MultiDex causa NoClassDefFoundError
  • ¿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
  • Ejecutar un tarro multidex independiente en Android Kitkat
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.