2016-09-25 5 views
16

एंड्रॉइड स्टूडियो 2.2 पर प्राप्त करना।एंड्रॉइड जैक: जार फ़ाइल से आने वाले लैम्ब्डा को क्लासपाथ पर संकलित करने के लिए उनके इंटरफेस की आवश्यकता होती है, अज्ञात इंटरफेस java.util.function.Consumer

क्या किसी के पास कोई कामकाज है?

मेरा ऐप का निर्माण फ़ाइल है:

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' 
} 

संपादित करें: मुख्य निर्माण फ़ाइल modifid https://stackoverflow.com/users/5753091/mohammadreza-khalifeh से जवाब शामिल करने के लिए - लेकिन इससे सहायता नहीं मिली

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" 
     } 
    } 
} 

संपादित करें: जोड़ने:

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

प्रिंट आउट:

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

ऐसा लगता है कि पथ में जगह किसी समस्या का कारण बन सकती है?

संपादित करें: कोशिश कर:

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

या तो काम नहीं करता।

+0

लगता है कि यह मेरे सवाल से संबंधित है जैसे: https://stackoverflow.com/questions/41735756/cannot- उपयोग-लैम्ब्डा-फ़ंक्शंस-इन-एंड्रॉइड-साथ-जावा-1-8 अभी भी एक कामकाजी उत्तर की प्रतीक्षा कर रहा है :( –

+0

शायद यह है। iirc, मुझे थोड़ी देर के लिए काम करने के लिए कुछ मिला, लेकिन जब मैंने एंड्रॉइड स्टूडियो को अपग्रेड किया तो यह टूट गया। मुझे वास्तव में लैम्न्डस की ज़रूरत नहीं थी, इसलिए मैंने छोड़ दिया और 1.7 के साथ अटक गया। मैंने अपनी परिभाषा उपभोक्ता का इस्तेमाल किया और गुमनाम आंतरिक कक्षाओं का इस्तेमाल किया। –

उत्तर

0

अपने build.gradle में जोड़ें:

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

ने कोशिश की, लेकिन कोई खुशी नहीं। –

+0

हाँ, उस पर कोई भी नहीं, अभी भी समाधान पर काम कर रहा है –

0

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

और

minSdkVersion 25 
1

मैं अपने निर्भरता को Guava पुस्तकालय को जोड़ने के बाद इस समस्या थी की कोशिश करो।

समाधान com.google.guava:guava:21.0 से com.google.guava:guava:20.0 पर lib संस्करण को डाउनग्रेड करना था।

इसके अलावा, मैं classpath 'com.android.tools.build:gradle5.5 का उपयोग कर रहा हूं।0-अल्फा पूर्वावलोकन-01`

संपादित करें: यदि आप इस पुस्तकालय का उपयोग नहीं करते के रूप में परिवर्तित करने का प्रयास करें:

  • परियोजना में build.gradle
    • classpath classpath 'com.android.tools.build:gradle:2.2.0' से com.android.tools.build:gradle:2.5.0-alpha-preview-01
    • को
  • ऐप में build.gradle

      compileSdkVersion 24 से
    • 25
    • buildToolsVersion "24.0.2" से
    • को gradle-wrapper.properties में 25.0.2
  • को

    • परिवर्तन संस्करण distributionUrl=https://services.gradle.org/distributions-snapshots/gradle-3.5-20170213202653+0000-all.zip
को
+1

अगर मैं गलत हूं, तो मुझे सही करें, लेकिन ... मुझे ओपी की निर्भरताओं में अमरूद नहीं दिख रहा है। – Moira

+0

@ 1blustone मैंने अपना जवाब संपादित किया है – piotrek1543

+0

डाउनग्रेड अमरूद काम कर रहा है –

0

एंड्रॉयड स्टूडियो उन्नयन, निम्नलिखित काम करने के लिए लगता है (लेकिन अब यह वास्तव में धीमी है):

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' 
} 
संबंधित मुद्दे

 संबंधित मुद्दे