Android N ต้องการ IDE เพื่อให้ทำงานกับ Java 1.8 หรือใหม่กว่า?


117

XMLเค้าโครงของฉันไม่แสดงผลพร้อมข้อความแสดงข้อผิดพลาดนี้ ฉันใช้ Java 8 อยู่แล้ว

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

นอกจากนี้ยังใช้เครื่องมือสร้างล่าสุดใน Gradle

android {
    compileSdkVersion 'android-N'
    buildToolsVersion 24.0.0 rc1
    ...
}

ข้อผิดพลาด XML -

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


2
มีปัญหาการแสดงผลกับ Android Studio ทุกประเภท ผมขอแนะนำให้คุณให้เป็นตัวอย่างที่สามารถทำซ้ำได้น้อยที่สุด ในกรณีนี้จะรวมถึงไฟล์เค้าโครงและข้อผิดพลาดเฉพาะ
CommonsWare

@CommonsWare ฉันอัปเดตอิมเมจข้อผิดพลาด XML ติดตั้ง JDK ที่รองรับเปลี่ยนเส้นทางให้ฉันตั้งค่าขั้นตอนที่ฉันทำไปแล้ว
mjosh

1
ฉันต้องเปลี่ยนเป็น buildToolsVersion '24 .0.0 rc1 'เอกสารประกอบไม่มีเครื่องหมายคำพูด
Phyrum Tea

@PhyrumTea ไม่ได้ทำให้ข้อผิดพลาดหายไป
mjosh

1
ในที่สุดเมื่อฉันพยายามสร้างและเรียกใช้โครงการมันล้มเหลวด้วยDirectory cannot have its readable permission cleared for everybody. เห็นได้ชัดว่าเป็นจุดบกพร่องที่ทราบและ Google กำลังดำเนินการแก้ไข
mjosh

คำตอบ:


187

ฉันได้รับข้อผิดพลาดเดียวกันกับที่คุณอธิบาย แต่ใน OS X ฉันรู้ว่านี่อาจไม่สามารถแก้ปัญหาของคุณได้ (เพราะฉันไม่รู้ว่า Windows เทียบเท่า) แต่เนื่องจากนี่ไม่ใช่ระบบปฏิบัติการที่เฉพาะเจาะจงฉันจึงออกจากโซลูชันสำหรับ OS X เพื่อน ข้างนอกนั้น. แก้ไขไฟล์/Applications/Android\ Studio.app/Contents/Info.plistและลบเวอร์ชัน 1.6 (ในกรณีของฉัน) คุณอาจวาง 1.6+, 1.7+ หรือ 1.8 ก็ได้แล้วแต่คุณต้องการ ของฉันลงเอยเช่นนี้

...
<key>JVMVersion</key>
<string>1.7+</string>
...

โปรดทราบว่ามีความเข้ากันไม่ได้กับการลากและวางกับ java เวอร์ชัน 1.8_60 ถึง 1.8_75 ( IDEA-146691 ) ซึ่ง IDE จะรายงานเมื่อคุณเปลี่ยนเวอร์ชันสำเร็จ

สำหรับผู้ใช้ที่ไม่ใช่ Terminal

  1. ค้นหาAndroid Studio.appไฟล์ของคุณ หากอยู่ในท่าเรือคุณสามารถคลิกขวาและเลือกOptions > Show in Finderได้
  2. Show package contentคลิกขวาและเลือก
  3. ไปที่ไฟล์ที่กล่าวถึง ( Contents/Info.plist)
  4. แก้ไขไฟล์ด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ

11
สิ่งนี้จะเปลี่ยนเครื่องเสมือนที่ Android Studio ทำงานอยู่ ใน OSX ของฉันค่าดั้งเดิมคือ: <key> JVMVersion </key> <string> 1.6 *, 1.7 +, 1.8 </string> และค่าใหม่คือ: <key> JVMVersion </key> <string> 1.8 </ string>
santhyago

8
มันได้ผล! ขอบคุณสำหรับการแก้ปัญหานี้ คำถามคือทำไม Google ต้องการให้นักพัฒนาของเขาเสียเวลากับปัญหานี้
Kotik_o

3
ขอขอบคุณที่แก้ไขปัญหาการขาดเอกสารของ Google :) ฉันสงสัยว่าเหตุใดจึงไม่มีคำแนะนำนี้ที่นี่: developer.android.com/intl/pt-br/preview/setup-sdk.html#java8 (นี่คือลิงค์ที่แสดงใน android studio)
Totalys

7
ใช้งานได้ดี !! น่าเศร้าเมื่ออัปเดต Android Studio (ซึ่งฉันเพิ่งทำเป็นเวอร์ชันล่าสุด) มันจะรีเซ็ตไฟล์ Info.plist ดังนั้นฉันจึงต้องทำซ้ำขั้นตอนอีกครั้งเพื่อเปลี่ยน JVMVersion ของฉัน: <key>JVMVersion</key> <string>1.8</string>Android Studio ที่น่ารำคาญมาก!
ไมโคร

3
Android Studio 2.2 ใช้ <string> 1.8 *, 1.8 + </string>
jmnwong

147

คลิกที่ตัวอักษร N ถัดจากไอคอน android ในหน้าต่างแสดงตัวอย่างและเลือก API ระดับ 23 หรือต่ำกว่า ที่ควรแก้มัน

แถวแรกของไอคอนในหน้าต่าง rpeview


25
แต่ฉันต้องการดูตัวอย่างใน N ไม่ใช่ใน API 23
mjosh

3
ฉันประสบปัญหาเดียวกันในเครื่อง Mac ของฉัน การลดระดับ API จาก 24 เป็น 23 ได้ผลสำหรับฉัน
salman

3
ไม่ใช่คำตอบโปรดทำตามคำตอบที่ทำเครื่องหมายว่าถูก
Pavneet_Singh

นี่ไม่ใช่คำตอบ นี่เป็นเพียงการเพิกเฉยต่อสภาพแวดล้อมที่เป็นปัญหา
enadun

ทำได้ดีมาก ใช่มันช่วยแก้ปัญหาของฉันได้ ขอบคุณ. :)
arango_86

63

ชุดJDK_HOMEและตัวแปรสภาพแวดล้อมในกรณีของฉันJAVA_HOMEC:\Program Files\Java\jdk1.8.0_60

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

Help > Aboutตรวจสอบเวอร์ชั่นของชวา ควรแสดงเวอร์ชัน JRE ที่คุณเพิ่งตั้งค่า

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

ตอนนี้คุณสามารถดูตัวอย่างเลย์เอาต์ของคุณNได้แล้ว


1
ฉันทำตามที่คุณพูด แต่เมื่อฉันช่วย -> เกี่ยวกับเรื่องนี้ยังคงชี้ไปที่ jdk เก่าของฉัน ทำไมถึงเป็นเช่นนั้น?
The_Martian

1
ฉันมี JRE: 1.8 (ประมาณ) อย่างไรก็ตามฉันไม่สามารถสร้างแอปที่กำหนดเป้าหมายเป็น v24 > compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.
Zapnologica

1
@The_Martian คุณต้องรีสตาร์ทคอมพิวเตอร์
บีบ

1
ใน Mac Os ฉันลบ jdk เวอร์ชันเก่าของฉันออก หลังจากนั้น Android Studio จะเลือกเวอร์ชันล่าสุด
lopez.mikhael

1
@ lopez.mikhael นั่นเป็นสิ่งเดียวที่ใช้ได้ผลสำหรับฉันในที่สุด ฉันเปลี่ยนการตั้งค่าทุกอย่างที่เป็นไปได้ที่ฉันพบกำหนดค่าทุกอย่างตามที่ควรจะทำรับข้อผิดพลาด ในท้ายที่สุดฉันย้ายไดเร็กทอรี jdk ที่เก่ากว่าไปยังไดเร็กทอรีย่อยที่ฉันชื่อ old_jdks ในโฟลเดอร์ JavaVirtualMachine ทุกอย่างทำงานได้ดีในขณะนี้
zgc7009

27

สำหรับผู้ใช้ Mac ที่มีปัญหานี้ (ฉันใช้ OS X 10.11.5 และ Android Studio 2.1.2) วิธีแก้ไขมีดังนี้

ปัจจุบัน Android Studio เวอร์ชัน Mac ทำงานด้วย Java 6 (ไม่จำเป็นต้องเหมือนกับเวอร์ชัน JDK สำหรับแอป) เนื่องจาก Java 6 มีการแสดงผลแบบอักษรที่ดีกว่า Java 7 & 8 และเห็นได้ชัดว่าสำคัญกว่าการแสดงผลเลย์เอาต์ของคุณ

ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง JDK 8แล้ว

จากนั้นรันคำสั่งต่อไปนี้:

$ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk
$ open /Applications/Android\ Studio.app/

คุณอาจต้องเปลี่ยน91อินjdk1.8.0_91.jdkเป็นเวอร์ชันอื่น คุณสามารถดูเวอร์ชัน JDK ที่คุณมี:

$ ls /Library/Java/JavaVirtualMachines/

น่าเสียดายที่วิธีนี้ต้องเปิดแอปจากเทอร์มินัล แต่คุณสามารถสร้างสคริปต์ได้ตลอดเวลา

ข้อมูลเพิ่มเติม

แก้ไข:และถ้าคุณไม่ต้องการเปิดจากเทอร์มินัล:

  1. สร้าง AppleScript พร้อมเนื้อหา: do shell script "export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk; open /Applications/Android\\ Studio.app/"
  2. ไฟล์> บันทึกเลือกรูปแบบไฟล์แอพลิเคชัน บันทึกไว้ที่ไหนสักแห่ง
  3. หากคุณต้องการเปลี่ยนไอคอนโปรดดูที่นี่
  4. ลากแอพไปที่ Launchpad ของคุณหากต้องการ

เมื่อฉันพยายามเรียกใช้สคริปต์ฉันได้รับ: error "sh: /usr/local/bin/studio: No such file or directory" number 127มีวิธีแก้ไขอย่างไร เมื่อฉันเรียกใช้จากเทอร์มินัลมันทำงานได้อย่างสมบูรณ์
Daniele

@ Daniele ขออภัยฉันลืมไปว่าฉันสร้างเชลล์สคริปต์อื่นสำหรับสิ่งนั้น AppleScript ควรมีคำสั่งเดียวกันกับด้านบน ดูคำตอบที่อัปเดตของฉัน
wumbo

5

ฉันพบปัญหาเดียวกัน

ฉันติดตั้ง jdk1.6, jdk1.7, jdk1.8 และปรับใช้ Studio ตามที่คุณทำ

วิธีแก้ปัญหาของฉันคือถอนการติดตั้ง jdk1.6 และ jdk1.7 ปล่อยให้ jdk1.8 เท่านั้น

sudo rm -rf ${path to jdk1.6}
sudo rm -rf ${path to jdk1.7}

นั่นคือทั้งหมด


ปลอดภัยที่จะทำ
ไมโคร

@MicroR ถ้าคุณใช้โปรแกรมอื่น ๆ ไม่ได้ขึ้นอยู่กับ jdk1.6 และ jdk1.7 ฉันคิดว่ามันปลอดภัย
youngwind

วิธีนี้แก้ไขปัญหาให้ฉัน วิธีการถอนการติดตั้งนี้ปลอดภัยและเป็นวิธีที่ Oracle แนะนำ ( docs.oracle.com/javase/8/docs/technotes/guides/install/… )
Showpath

2

ฉันใช้ Ubuntu 14.04 และพบข้อผิดพลาดที่คล้ายกันโดยที่ฉันไม่มี NDK ต่างกัน วิธีแก้ปัญหาของฉันคือหลังจากตั้งค่า Java 8 ในข้อกำหนดโครงการแล้วให้รีบูต Android Studio ไม่ต้องทำอีกต่อไป

ตรวจสอบเวอร์ชัน Java ของระบบในคอนโซล "java -version" เอาต์พุตควรมีข้อความเช่นนี้

java version "1.8.0_91"

ฉันได้ตั้งค่า JAVA_HOME = "/ Library / Java / JavaVirtualMachines / jdk1.8.0_91.jdk / Contents / Home" ควร STUDIO_SDK ด้วย "/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home" หรือไม่
mythicalcoder

ในทางทฤษฎีคุณอาจตั้งค่าตัวแปร STUDIO_SDK ซึ่งจะเป็นพา ธ SDK เพื่อเรียกใช้ Android Studio (ตามที่กล่าวไว้ใน config params tools.android.com/tech-docs/configurationของ Studio ) อย่างไรก็ตามในกรณีของฉันฉันไม่ได้ตั้งค่าตัวแปรนั้นและ IDE กำลังทำงานตามที่คาดไว้
Sergio A Guzmán

คุณพูดถูก ฉันลองสิ่งต่างๆ มันเป็นปัญหาของ 1.8 ที่เชื่อมโยงไม่ถูกต้อง นี้แก้ไขได้stackoverflow.com/a/35935433/2369867 ขอบคุณ
mythicalcoder

2

มีปัญหาเดียวกันกับ Ubunutu ปัญหาไม่ได้รัน IDE ด้วย Java8

ฉันแก้ไขด้วยการอัปเดตโปรแกรม java เริ่มต้นของระบบปฏิบัติการโดยใช้:

sudo update-alternatives --config java

และการเลือกพา ธ Java8 ที่เกี่ยวข้อง


1

ฉันประสบปัญหา "Android N ต้องการ IDE เพื่อให้ทำงานกับ Java 1.8 หรือใหม่กว่า" ข้อผิดพลาดยังคงปรากฏขึ้นแม้ว่าจะตั้งค่าC:\Program Files\Java\jdk1.8.0_92เป็น JDK ของโปรเจ็กต์File > Project Structureก็ตาม

ฉันจะแก้ไขได้โดยการปรับปรุงใน JAVA_HOME ตัวแปรสภาพแวดล้อมของฉันจากไปC:\Program Files\Java\jdk1.7.0_67 C:\Program Files\Java\jdk1.8.0_92เมื่อฉันทำเช่นนั้นและรีสตาร์ท Android Studio โหมดออกแบบก็พร้อมใช้งาน

ระบบปฏิบัติการ: Windows 10

Android Studio: 2.1.2


1

ฉันได้แก้ไขด้วยวิธีเหล่านี้แล้ว (AS + MAC OX El Capitan)

  1. การอัปเดตเครื่องมือ SDK> เครื่องมือแพลตฟอร์ม Android SDK
  2. ไปที่วิธีใช้> แก้ไขคุณสมบัติที่กำหนดเอง> กล่องโต้ตอบจะแจ้งให้ (กดใช่) จากนั้นเขียน

    JVMVersion=1.8 

จากนั้นปิด Android Studio โดยสมบูรณ์แล้วโหลดโครงการใหม่



0

ปัญหาของฉันคือ Android N ถูก "ติดตั้งบางส่วน"

วิธีแก้ปัญหาของฉันคือไปที่ - การตั้งค่า / ลักษณะที่ปรากฏและพฤติกรรม / การตั้งค่าระบบ / Android SDK และตรวจสอบสถานะ หาก "ติดตั้งบางส่วน" คุณต้องถอนการติดตั้งแล้วติดตั้งใหม่ (ยกเลิกการเลือกช่องทำเครื่องหมายและกดใช้มันจะถอนการติดตั้งจากนั้นคุณสามารถทำเครื่องหมายในช่องและติดตั้งใหม่อีกครั้ง) ทำงานให้ฉัน หากคุณไปที่เวอร์ชันที่ต่ำกว่า (เช่น 23) คุณต้องเปลี่ยนตัวแปร buildToolsVersion เป็น "23.0.0" ใน build.gradle


1
เหมืองยังคงระบุว่า "ติดตั้งบางส่วน" หลังจากติดตั้งใหม่
Andrew

ฉัน "ติดตั้งบางส่วน" ด้วยเช่นกันหลังจากติดตั้งใหม่ @ แอนดรูว์คุณพบวิธีแก้ปัญหาหลังจากนั้นหรือไม่?
mythicalcoder

@ มาเวนสำหรับฉันปรากฎว่าปัญหาของฉันคือฉันไม่ได้เลือกตัวแปรการสร้างที่ถูกต้องเมื่อฉันพยายามสร้างแอป
Andrew

0

เมื่อเร็ว ๆ นี้ฉันประสบปัญหาเดียวกัน ลองเปลี่ยนระดับการแสดงตัวอย่าง API เป็น 23 หรือต่ำกว่า ที่ได้ผลสำหรับฉัน


0

ฉันประสบปัญหาเดียวกัน โปรดตรวจสอบให้แน่ใจว่าคุณกำลังแสดงเค้าโครง XML สำหรับเวอร์ชัน SDK ที่คอมไพล์แล้ว (ต้องไม่มากกว่า) หมายความว่าคุณจะต้องเผชิญกับสิ่งนี้หากคุณกำลังรวบรวมโค้ดโดยใช้ Targeted SDK เวอร์ชัน 23 และพยายามแสดง XML ใน SDK เวอร์ชัน 24


0

มีหลายสิ่งที่ต้องจำเมื่อตั้งค่า STUDIO_JDK บน Mac OS:

  • โดยค่าเริ่มต้น Java 1.6 ของ Apple จะใช้เพื่อเริ่ม Android Studio
  • เมื่อ STUDIO_JDK ถูกตั้งค่าเป็น Java ของ Oracle Android Studio จะใช้ Android Studio

ความแตกต่างระหว่างสองอย่างคือ Java IMO ของ Apple ให้การลบรอยหยักแบบอักษรที่ดีกว่าและดีกว่าใน IDE

คำตอบที่นี่อ้างถึงข้อบกพร่องใน Android Studio เกี่ยวกับการลบรอยหยักแบบอักษร ตั๋วถูกปิดไปแล้ว แต่การแสดงผลยังแตกต่างกันสำหรับ Apple Java และ Oracle SDK (ฉันมี v1.8.0_102) และอดีตยังมีการรับรู้ที่ดีกว่าครั้งล่าสุด


0

พยายามใช้ในโครงการ Java 1.8 - ดาวน์โหลด JDK เวอร์ชันล่าสุดและติดตั้ง (หากไม่มี JSK)

จากนั้นเพิ่มไปที่ build.gradle บรรทัดเหล่านี้ android {... // กำหนดค่าเฉพาะสำหรับแต่ละโมดูลที่ใช้คุณสมบัติ Java 8 // ภาษา (ไม่ว่าจะในซอร์สโค้ดหรือ // ผ่านการอ้างอิง) compileOptions {sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8} // สำหรับโครงการ Kotlin kotlinOptions {jvmTarget = "1.8"}}


-1

เครื่อง: windows8 64bit ในกรณีของฉัน jdk1.7 ที่ฉันติดตั้งคือ 32 บิตดังนั้นฉันจึงใช้ studio.exe (32 บิต) ดังนั้นแม้ว่าฉันจะดาวน์โหลด jdk1.8 (64 บิต) ใหม่อินสแตนซ์สตูดิโอที่ฉันใช้ (32 บิต) ก็ไม่ได้ ' t ตรวจพบ แต่เมื่อฉันถอนการติดตั้ง jdk รุ่นเก่าและพยายามเรียกใช้ studio.exe อีกครั้งฉันได้รับคำสั่งให้ติดตั้ง jdk 32 บิต ดังนั้นฉันจึงรัน studio64.exe และทำงานได้อย่างราบรื่น ตรวจสอบให้แน่ใจว่าคุณมีเส้นทางที่ถูกต้องในตัวแปรสภาพแวดล้อมของคุณ ไชโย android N


-1

ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง jdk สำหรับ x64 ไม่ใช่ x84 เมื่อเริ่ม Android Studio (x64)

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

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