java - 'एंड्रॉइड-24' को जेडीके 1.8 या बाद में संकलन करने की आवश्यकता है




android android-studio (8)

मैं एंड्रॉइड स्टूडियो का उपयोग करता हूं और हाल ही में त्रुटि मिली है:

त्रुटि: निष्पादन कार्य के लिए विफल रहा ': app: compileDebugJavaWithJavac'। compileSdkVersion 'android-24' को जेडीके 1.8 या बाद में संकलन करने की आवश्यकता है।

लेकिन मेरे पास जेडीके 1.8 पहले से स्थापित है:

: \ उपयोगकर्ता ..> जावा-वर्जन
जावा संस्करण "1.8.0_ 9 1" जावा (टीएम) एसई रनटाइम
पर्यावरण (निर्माण 1.8.0_91-बी 15) जावा हॉटस्पॉट (टीएम) 64-बिट सर्वर वीएम
(25.9 1-बी 15, मिश्रित मोड का निर्माण)

इसे कैसे जोड़ेंगे? धन्यवाद


Answers

मैं अपने विंडोज़ पर कमांड लाइन से भी उसी मुद्दे पर दौड़ रहा था, यह एक ही संकेत दिखाता है।

Error:Execution failed for task ':app:compileDebugJavaWithJavac'. `compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.`

Project Structure में JDK location जांच करें।

एंड्रॉइड स्टूडियो में खुला: File > Project Structure > देखें कि जेडीके स्थान आपके जेडीके 1.8 निर्देशिका में इंगित करता है या नहीं।

यह दिखना चाहिए

JDK Location
C:\Program Files\Java\jdk1.8.0_91

मैंने पहले ही जेडीके में सही स्थान निर्धारित किया है।

जावा संस्करण की जांच करें

D:\AndroidSelfTrainingProject\CustomBuildIdDemo>java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

ग्रेडल संस्करण की जांच करें

.D:\AndroidSelfTrainingProject\CustomBuildIdDemo>gradle -v

------------------------------------------------------------
Gradle 2.10
------------------------------------------------------------

Build time:   2015-12-21 21:15:04 UTC
Build number: none
Revision:     276bdcded730f53aa8c11b479986aafa58e124a6

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.7.0_79 (Oracle Corporation 24.79-b02)
OS:           Windows 7 6.1 amd64

जेवीएम संस्करण 1.8 होना चाहिए। इसे ठीक करने के लिए, हम .gradle में अपने HOME_DIRECTORY सेट org.gradle.java.home=/path_to_jdk_directory में .gradle निर्देशिका में gradle.properties में जोड़ सकते हैं। मेरे लिए, यह इस तरह है:

org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_91

यह सत्यापित करने के लिए कि क्या यह सही है, हम एक gradle build कार्य कर सकते हैं।

D:\AndroidSelfTrainingProject\CustomBuildIdDemo>gradle build
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon
: https://docs.gradle.org/2.10/userguide/gradle_daemon.html.

To run dex in process, the Gradle daemon needs a larger heap.
It currently has approximately 910 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB.
To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties.
For more information see https://docs.gradle.org/current/userguide/build_environment.html

एंड्रॉइड स्टूडियो में खुला:
File > Project Structure > देखें कि जेडीके स्थान आपके जेडीके 1.8 निर्देशिका में इंगित करता है या नहीं।

नोट: आप compileSdkVersion 24 उपयोग कर सकते हैं


मैंने नवीनतम जेडीके स्थापित किया लेकिन जब तक मैंने ऐसा नहीं किया तब तक यह पुराने का उपयोग कर रहा था:

app rt-click >> module settings >> sdk location >> (old jdk path)

अपने नए जेडीके पथ के साथ पुराने जेडीके पथ को बदलें।

अब आकर्षक के रूप में काम करता है :)


मुझे दिनों के लिए एक ही समस्या है। मुझे एक समाधान मिला जो विंडोज़ से मुझसे काम करता था। (मैंने पर्यावरण चर सेट भी किया है, लेकिन यह नहीं पता कि इसकी आवश्यकता है या नहीं।)

इन लाइनों को build.gradle फ़ाइल में जोड़ें:

android {
     ...
     defaultConfig {
          ...
          jackOptions {
              enabled true
          }
     }
     compileOptions {
         targetCompatibility 1.8
         sourceCompatibility 1.8
     }
}

स्रोत: https://code.google.com/p/android/issues/detail?id=203850


मैं अपने मैक पर कमांड लाइन से भी उसी मुद्दे पर दौड़ रहा था, लेकिन जवाब यह था कि JAVA_HOME ओवरराइड हो रहा था। यह पता लगाने के लिए कि इसे ओवरराइड किया जा रहा है, पहले कमांड लाइन से जावा देखें:

$ java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

फिर जावा का कौन सा संस्करण जांचें कि ग्रैडल का उपयोग कर रहा है:

$ gradle -version

------------------------------------------------------------
Gradle 2.13
------------------------------------------------------------

Build time:   2016-04-25 04:10:10 UTC
Build number: none
Revision:     3b427b1481e46232107303c90be7b05079b05b1c

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_92 (Oracle Corporation 25.92-b14)
OS:           Mac OS X 10.11.5 x86_64

इस बिंदु पर, मुझे अभी भी समस्या का स्रोत नहीं मिला था। थोड़ा खोदने लगा, और पाया कि यह वास्तव में मेरी gradle.properties फ़ाइल में ओवरराइड किया गया था, भले ही यह जावा 8 दिखा रहा था जब मैंने gradle -version निष्पादित किया:

org.gradle.daemon=true
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
org.gradle.jvmargs=-XX:MaxPermSize=512m -XX:-UseSplitVerifier -Xms512m -Xmx6144m

ठीक करने के लिए, मैंने अभी java.home लाइन को gradle.properties से हटा दिया है। उम्मीद है कि यह मदद करता है अगर कोई और कमांड लाइन से एक ही मुद्दे में चल रहा है।


सिर्फ एक एफवाईआई मुझे एक आईओनिक परियोजना के साथ यह त्रुटि थी। सभी आदेश सही जेडीके और JAVA_HOME को इंगित करने के लिए सही ढंग से सेट किए गए थे।

मेरे पैथ में जेडीके 1.7 \ बिन में एक प्रविष्टि थी, जिसकी जगह 1.8 \ बिन ने मेरे लिए तय की थी।


एंड्रॉइड स्टूडियो में खुला: फ़ाइल> परियोजना संरचना> एसडीके स्थान> jdk1.8.0_101.jdk> होम का चयन करें


मजेदार ईस्टर अंडे।
क्रोम के उबंटू संस्करण में, टास्क मैनेजर ( शिफ्ट + एएससी ) में, राइट-क्लिक के साथ आप एक विज्ञान-फाई कॉलम जोड़ सकते हैं जो इतालवी संस्करण में "कैपर टेलीलेटपोर्ट" (टेलीपोर्टेड बकरी) है।

इसके बारे में एक मजाकिया सिद्धांत here





java android android-studio