2016-04-06 30 views
6

में एक जार का उपयोग करते समय त्रुटि मैं अपने जार बनाने के लिए जावा 1.8 का उपयोग करता हूं।मेरी परियोजना

मैं एक जावा परियोजना में उपयोग कर सकते हैं, लेकिन एक Android परियोजना में, मैं निम्नलिखित त्रुटि है:

Error:Error converting bytecode to dex: 
Cause: Dex cannot parse version 52 byte code. 
This is caused by library dependencies that have been compiled using Java 8 or above. 
If you are using the 'java' gradle plugin in a library submodule add 
targetCompatibility = '1.7' 
sourceCompatibility = '1.7' 
to that submodule's build.gradle file. 
Error:1 error; aborting 
Error:Execution failed for task ':app:transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'E:\Android-tool\JAVA\jdk1.8.0_77\bin\java.exe'' finished with non-zero exit value 1 
Information:BUILD FAILED 
Information:Total time: 6.468 secs 
Information:3 errors 
Information:0 warnings 
Information:See complete output in console 
+0

जावा का किस संस्करण का उपयोग किया जाता है? क्या आपने त्रुटि संदेश पढ़ा है और सुझाए गए समाधानों का प्रयास किया है? – Stultuske

+0

शायद, आपका प्रश्न http://stackoverflow.com/questions/23318109/is-it-possible-to-use-java-8-for-android-development – GhostCat

+0

पर कोई डुप्लिकेट है कोई समाधान मिला? – whizzzkey

उत्तर

-1

तो स्वयं त्रुटि में व्याख्या करते हैं:

This is caused by library dependencies that have been compiled using Java 8 or above. If you are using the 'java' gradle plugin in a library submodule add targetCompatibility = '1.7' sourceCompatibility = '1.7' to that submodule's build.gradle file.

+0

इसका मतलब है कि मैं जावा 1.8 का उपयोग नहीं कर सकता? – jevely

+1

मैं किसी भी समस्या के बिना jdk1.8.0_45 का उपयोग कर रहा हूं –

+1

फिर से त्रुटि पढ़ें 'यदि आप लाइब्रेरी सबमिशन में' जावा 'ग्रेडल प्लगइन का उपयोग कर रहे हैं ....' –

0

को इन बातों को जोड़ें मॉड्यूल का build.gradle:

android { 
    buildToolsVersion "24rc4" 

    defaultConfig { 
     jackOptions { 
      enabled true 
     } 
    } 
    dexOptions { 
     incremental true 
    } 

    compileOptions { 
     sourceCompatibility = org.gradle.api.JavaVersion.VERSION_1_8 
     targetCompatibility = org.gradle.api.JavaVersion.VERSION_1_8 
    } 
} 
0

उसी स्थिति में विफल हो जाएं। मैंने जो किया है वह यहाँ है। 1. डाउनलोड JDK 1.7 इस लिंक से Oracle Java 1.7

  1. अब, डाउनलोड करने और इसे उन्नत प्रणाली संपत्तियों के लिए प्रणाली गुण (मेरा कंप्यूटर) पर जाएं और फिर स्थापित करने के बाद।
  2. पर्यावरण चर पर जाएं और पथ को घर और जावा घर को अपने नए स्थापित जेडीके 1.7 में बदलें।

यह ठीक काम करना चाहिए। यदि नहीं, तो नीचे दिए गए चरणों का पालन करें:

  1. एंड्रॉइड स्टूडियो पर स्विच करें और फिर अपने मॉड्यूल पर राइट क्लिक करें। मॉड्यूल सेटिंग्स/परियोजना संरचना पर जाएं।
  2. अब मॉड्यूल अनुभाग पर जाएं और 1,7

निर्माण मेरे लिए एक आकर्षण की तरह करने के लिए स्रोत और लक्ष्य अनुकूलता निर्दिष्ट करें। Ps। - इस तरह के देर से उत्तर के लिए खेद है

0

बहु-ऐप प्रोजेक्ट में जावा लाइब्रेरी के मामले में, लाइब्रेरी की build.gardle फ़ाइल में उल्लिखित कोड का उपयोग करें।

apply plugin: 'java' 
sourceCompatibility = JavaVersion.VERSION_1_7 
targetCompatibility = JavaVersion.VERSION_1_7 
compileJava.options.bootClasspath = "D:/android/sdk/platforms/android-23/android.jar" 
... 
dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
... 
} 

आप अपने स्थानीय पथ के साथ compileJava.options.bootClasspath बदलने के लिए फ़ाइल android.jar की आवश्यकता होगी। यह Win10 पर AS 2.2 में मेरे लिए काम करता है। अधिक संदर्भों के लिए कृपया here

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