ข้อผิดพลาด: compileSdkVersion android-21 ต้องการการคอมไพล์ด้วย JDK 7


106

ขณะคอมไพล์ฉันได้รับข้อผิดพลาดError:compileSdkVersion android-21 requires compiling with JDK 7โดยแจ้งว่าจำเป็นต้องใช้ JDK เวอร์ชันที่ใหม่กว่า

ฉันใช้ OS X Yosemite กับ Android Studio v0.8.14

สิ่งที่ฉันตรวจสอบ:

  1. เวอร์ชัน Java:

java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

  1. ภายในโฟลเดอร์ JavaVirtualMachine ฉันเห็นเฉพาะ1.6.0.jdkโฟลเดอร์ฉันไม่พบโฟลเดอร์อื่น

  2. พยายามติดตั้ง JDk 8 และ 7 ใหม่แล้ว!

ฉันไม่พบตำแหน่งโฟลเดอร์ของ jvm 1.8 ฉันคิดว่าจะแก้ไขได้อย่างไร


ฉันกำลังมีปัญหาเดียวกันนี้ คุณพบวิธีแก้ปัญหานี้แล้วหรือยัง?
gsueagle2008

@EricCumbee การใช้ Jdk 7 ตามที่แสดงด้านล่างช่วยแก้ปัญหาได้
Arjun Komath

4
เป็นเรื่องไร้สาระที่นี่เป็นประสบการณ์ครั้งแรก
Andy

คำตอบ:


224

การแก้ไขที่แน่นอนสำหรับปัญหานี้ (ผู้ใช้ Android Studio บน Mac)

ถ้าคุณได้รับการอัปเกรดแล้ว Java 8 โปรดทราบว่าสถานที่ตั้ง JDK ขณะนี้อยู่เมื่อเทียบกับสถานที่ตั้งของ/Library/Java Java 6 /System/Library/Javaดังนั้นเพื่อแก้ไขปัญหานี้คลิกขวาที่Project folder> Project Structure>SDK Location.

จากนั้นเปลี่ยนตำแหน่ง JDK เป็น

/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

หากคุณติดตั้ง JDK เวอร์ชันอื่น (นอกเหนือจาก Java 8) ให้ค้นหาพา ธ โดยใช้java_homeสคริปต์ก่อนและใช้เอาต์พุต เพียงแค่เรียกใช้

/usr/libexec/java_home 

10
ขอบคุณ @Subin สำหรับ Android studio 1.0.1 SDK สถานที่ตั้งอยู่ในFile > Project Structureหรือเพียงแค่กดCommand + ;
Husam

1
คำตอบที่สมบูรณ์แบบสำหรับผู้ใช้ android studio .. บันทึกฉันไว้
reidisaki

เส้นทางที่กล่าวถึงด้านล่างใช้ได้ผลสำหรับฉัน /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
Teja Swaroop

2
ฉันมองไปที่ตำแหน่งของฉันอย่างจริงจังและคิดว่ามันดี แต่ก็ยังคงเห็น jdk1.6 จนกว่าฉันจะรู้ว่าคุณหมายถึงอะไรเพื่อให้แน่ใจว่าคุณอยู่ใน / Library / Java แทนที่จะเป็น / System / Library / Java ซึ่งฉันพบ jdk1 ได้อย่างง่ายดาย 8 เพื่อไปที่ Contents / Home และบูมตอนนี้ Android Studio ทำงานได้โดยไม่มีข้อผิดพลาดคงที่ คุณเป็นนักบุญ!
ColossalChris

1
สิ่งนี้ใช้ได้กับ Windows ด้วย! เพียงชี้ไปที่การติดตั้ง JDK ตัวอย่าง:C:\Program Files\Java\jdk1.8.0_51
ADTC

29

อันที่จริงฉันเพิ่งพบวิธีแก้ปัญหา - JDK 7 อยู่ใน /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

ที่ทำให้ฉันได้ผล Oracle Docs เกี่ยวกับตำแหน่งที่ติดตั้ง JDK7


2
ฉันไม่เห็นโฟลเดอร์นี้! ของฉันแสดงเฉพาะโฟลเดอร์นี้1.6.0.jdk
Arjun Komath

ฉันจำไม่ได้ว่า Android Studio มองหาที่ไหนในตอนแรก แต่โฟลเดอร์ 1.7 JDK ไม่ได้อยู่ในแผนผังไดเรกทอรีเดียวกันกับ 1.6.0jdk
gsueagle2008

6
@ Arjun มีความสับสนเช่นเดียวกับคุณ แต่แล้วฉันก็ตระหนักว่า JDK 7 "Java directory" ตั้งอยู่ในจริง/Library/Javaแทนการ/System/Library/Javaแยกออกจาก JDK 6 ของฉัน
akhy

ดังนั้นในภาษาอังกฤษธรรมดาคุณได้แก้ไขปัญหานี้อย่างไร
JGallardo

{ROOT} /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/
gsueagle2008

10

ฉันมีวิธีแก้ปัญหา มันเกิดขึ้นกับฉันเช่นกันและฉันก็ค้นหามากมายใน Google แต่สิ่งที่ฉันได้รับคือคำใบ้ คำใบ้มากมาย และฉันคิดวิธีแก้ปัญหาที่แน่นอน

เนื่องจากคอมพิวเตอร์ไม่ได้ติดตั้ง JDK 7 (หรือสูงกว่า) ไดเร็กทอรี JDK ใน AS / Configuration อาจชี้ไปที่ JDK6 (ระบบ / ห้องสมุด / ... )

สิ่งที่คุณต้องทำคือ:

  1. ดาวน์โหลด JDK ล่าสุด
  2. ติดตั้ง
  3. ชี้ Android Studio / กำหนดค่า / ค่าเริ่มต้นของโครงการ / โครงสร้างโครงการ / (ตำแหน่ง JDK:) ไปที่ / Library / Java / JavaVirtualMachines / jdk1.8.0_25.jdk / Contents / Home

ข้อความที่เน้นด้วยตัวเอียงตัวหนาอาจแตกต่างกันดังนั้นขอแนะนำให้คุณเรียกดู หวังว่านี่จะช่วยได้ ใช้เวลาทั้งวันวุ่นวายกับ gradle, android studio มีความสุขในการเขียนโค้ด


7

ฉันพบว่าคำตอบของ Eric และ Subin ช่วยแก้ปัญหาของฉันได้:

กล่าวคือต้องตั้งค่า java JDK เป็นคำตอบของ Eric (สมมติว่าคุณใช้ JDK 7):

/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

ข้อผิดพลาดที่ฉันทำคือฉันพยายามเลือกไดเร็กทอรี jdk1.7.0_71.jdk และได้รับข้อความแสดงข้อผิดพลาด "โปรดเลือกไดเร็กทอรี JDK ที่ถูกต้อง"

ฉันกำลังทำงานกับรูปแบบที่ใช้ก่อนหน้านี้สำหรับ JDK 6 :( - มันใช้งานได้เมื่อฉันให้เส้นทางแบบเต็มลงไปใน Contents / Home

คำตอบของ Subin บอกวิธีค้นหาตำแหน่ง JDK ของคุณซึ่งอาจแตกต่างกันไปขึ้นอยู่กับสิ่งที่คุณกำลังพยายามทำ

ขอบคุณ Eric และ Subin!


3

ฉันแชร์สิ่งนี้เพราะต้องการช่วยผู้ที่พบคำถามนี้เมื่อ Googled เกิดข้อผิดพลาด "คำตอบ" อื่น ๆ บนอินเทอร์เน็ตส่วนใหญ่ใช้เวลานานมาก ทำตามด้านล่างก่อนที่คุณจะเสียเวลามากมายเหมือนที่ฉันทำ


สิ่งที่ฉันทำคือดาวน์โหลดJDK 7

จากนั้นเปลี่ยนการตั้งค่าของ jdk เป็น 1.7.0

ใส่คำอธิบายภาพที่นี่


3

ฉันเคยมีปัญหานี้เหมือนกัน จนถึงตอนนี้ฉันไม่สามารถหาวิธีแก้ไขได้ฉันจึงใช้วิธีเปลี่ยนเวอร์ชัน SDK สูงสุดเป็น 20 ซึ่งใช้ได้กับ JDK6

สำหรับตำแหน่งไฟล์แทนที่จะเป็นสตูดิโอ Android สมมติว่าควรอยู่ใน / System / Library / Java / JavaVirtualMachines / Insert JDK version / Contents / Home

ในความเป็นจริง JDK ของฉันได้รับการติดตั้งใน / Library / Java / JavaVirtualMachines / JDK Version ที่นี่ / Contents / Home

การพยายามเลือก JDK ในไดเร็กทอรีจริงที่ติดตั้งไว้ทำให้ android studio บอกว่าฉันต้องเลือกตำแหน่ง JDK ที่ถูกต้อง สำหรับตอนนี้ฉันไม่พบวิธีแก้ไขดังที่ได้กล่าวไว้ข้างต้นฉันได้ใช้การเปลี่ยนเวอร์ชัน SDK สูงสุดเป็น 20 แทนที่จะเป็น 21 และจะยังคงเป็นเช่นนั้นจนกว่าจะมีคนจำนวนมากขึ้นประสบปัญหาเพื่อให้ Google แก้ไข หรือจนกว่าการแก้ไขจริงจะถูกโพสต์ทางออนไลน์แทนที่จะเป็น 101 วิธีที่จะไม่ทำงาน

หวังว่านี่จะช่วยได้ในตอนนี้มันไม่ใช่วิธีแก้ปัญหา / คำตอบ แต่มันเป็นวิธีแก้ปัญหาที่เหมาะกับฉันในขณะนี้


0

หากคุณมีโฟลเดอร์ 1.6.0.jdk เท่านั้นให้ไปที่ลิงค์นี้และดาวน์โหลดและติดตั้ง jdk 1.7 จากนั้นค้นหาโฟลเดอร์ java ของคุณในเส้นทางนี้

/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

0

วิธีแก้ปัญหาในเธรดนี้ไม่ถูกต้องสำหรับข้อผิดพลาดเดียวกันใน Android Studio 1.4 เมนูการตั้งค่าเช่นหายไป ด้านล่างนี้คือโซลูชันสำหรับ Android Studio 1.4 ที่ทำงานบน Ubuntu 14.04

ในการแก้ปัญหาใน Ubuntu 14.04+ และ Android Studio 1.4+ คุณต้องไปที่

ไฟล์ -> การตั้งค่าอื่น ๆ -> การตั้งค่าเริ่มต้น -> สร้าง, การดำเนินการ, การปรับใช้ -> คอมไพเลอร์ -> คอมไพเลอร์ Java -> เวอร์ชัน Bytecode ของโครงการ

รายการแบบเลื่อนลงนี้จะว่างเปล่าโดยค่าเริ่มต้น

ตั้งค่าเป็น JDK ที่คุณต้องการในกรณีของ screencap ด้านล่าง 1.8

android sdk screencap

Voila โครงการของคุณจะรวบรวม


0
  1. ดาวน์โหลดจากที่นี่ล่าสุด JDK
  2. เปิดเครื่องมือบรรทัดคำสั่ง
  3. คัดลอกและวางบรรทัดต่อไปนี้ลงในเครื่องมือบรรทัดคำสั่งของคุณแล้วกด return

/ usr / libexec / java_home

  1. คัดลอกผลลัพธ์ของคำสั่งนี้
  2. กลับไปที่โครงการ Android ของคุณและไปที่ด้านล่าง

ไฟล์ -> โครงสร้างโครงการ -> ตำแหน่ง JDK

แก้ไข (คลิกที่สี่เหลี่ยมที่มีจุดสามจุด) ตำแหน่ง JDK (ที่ 2 ในภาพ) และวางเอาต์พุตเครื่องมือบรรทัดคำสั่งที่นั่น

ใส่คำอธิบายภาพที่นี่ ฉันได้รวบรวมคำแนะนำเหล่านี้โดยใช้ MacBook Pro

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.