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


Android Jack: Lambda que viene del archivo jar necesita sus interfaces en el classpath para ser compilado, las interfaces desconocidas son java.util.function.Consumer

Conseguir esto en android studio 2.2.

¿Alguien tiene una solución?

Mi archivo de compilación de aplicaciones es:

apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24.0.2" defaultConfig { applicationId "acme.cb2" minSdkVersion 18 targetSdkVersion 24 versionCode 1 versionName "1.0" jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.1.1' compile 'com.android.support:support-v4:24.1.1' } 

Edit: modifid el archivo de compilación principal para incluir respuesta de https://stackoverflow.com/users/5753091/mohammadreza-khalifeh – pero esto no ayudó

 import java.text.SimpleDateFormat buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'org.hidetake:gradle-ssh-plugin:2.4.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xbootclasspath/a:" + System.properties.get("java.home") + "/lib/rt.jar" } } } 

Editar: añadir:

 options.compilerArgs.each { println 'option: '+it} 

Imprime hacia fuera:

 option: -Xbootclasspath/a:C:\Program Files\Java\jdk1.8.0_92\jre/lib/rt.jar 

Parece que el espacio en el camino puede causar un problema?

Editar: intentando:

 options.compilerArgs << "\""+"-Xbootclasspath/a:" + System.properties.get("java.home") + "/lib/rt.jar"+"\"" 

Tampoco funciona.

  • Filtra una lista de objetos en Android usando gradle-retrolambda y Lightweight-Stream-API
  • ¿Java 8 funciona en Android api 24 y superior ¿O puede utilizar en api menor?
  • Expresiones Lambda en android
  • Unidad Método de prueba que no contiene lambda expresión Android Studio
  • Java.lang.NoClassDefFoundError $$ inlined $ forEach $ lambda $ 1 en Kotlin
  • ¿Cómo puedo suprimir nuevo anónimo runnable () se puede sustituir por lambda
  • ¿Cómo mejorar la sintaxis kotlin lambda?
  • Las expresiones Lambda se bloquean con IncompatibleClassChangeError en Android cuando se usa jack
  • 4 Solutions collect form web for “Android Jack: Lambda que viene del archivo jar necesita sus interfaces en el classpath para ser compilado, las interfaces desconocidas son java.util.function.Consumer”

    Tuve este problema después de añadir Guava biblioteca a mis dependencias.

    La solución fue rebajar la versión lib de com.google.guava:guava:21.0 a com.google.guava:guava:20.0 .

    También, estoy usando classpath 'com.android.tools.build: gradle: 2.5.0-alpha-preview-01`

    EDIT: Como no utiliza esta biblioteca, intente cambiar:

    • En el proyecto build.gradle
      • Classpath de classpath 'com.android.tools.build:gradle:2.2.0' a com.android.tools.build:gradle:2.5.0-alpha-preview-01
    • En app build.gradle

      • De compileSdkVersion 24 a 25
      • De buildToolsVersion "24.0.2" a 25.0.2
    • En gradle-wrapper.properties

      • Cambie la versión a distributionUrl=https://services.gradle.org/distributions-snapshots/gradle-3.5-20170213202653+0000-all.zip

    Agrega esto en tu build.gradle:

     allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xbootclasspath/a:" + System.properties.get("java.home") + "/lib/rt.jar" } } } 

    Tratar

     classpath 'com.android.tools.build:gradle:2.3.+' 

    y

     minSdkVersion 25 

    Actualizando android studio, lo siguiente parece funcionar (pero ahora es muy lento):

     apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.0" defaultConfig { applicationId "acme.cb2" minSdkVersion 22 targetSdkVersion 25 versionCode 1 versionName "1.0" jackOptions { enabled true } } dexOptions { //javaMaxHeapSize "4G" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.android.support:support-v4:25.2.0' } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.