Android Studio: หน้าต่างส่งออกข้อผิดพลาดของคอมไพเลอร์อยู่ที่ไหน?


310

เมื่อฉัน 'เรียกใช้' โครงการของฉันใน Android Studio ในหน้าต่าง 'ข้อความ' ฉันจะได้รับ:

Gradle: 
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':play01:compileDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

มันบอกว่า> Compilation failed; see the compiler error output for details. "การส่งออกข้อผิดพลาดคอมไพเลอร์" อยู่ที่ไหน? และ / หรือฉันจะเรียกใช้--stacktraceตัวเลือกได้อย่างไร


2
ฉันใช้ Android Studio 1.3.2 และไม่มีวิธีแก้ปัญหาใด ๆ ทำงาน
Milan Babuškov

6
สตูดิโอ Android sucki ต้องการคำถามที่โง่ ๆ เช่นนี้เพื่อได้รับการสนับสนุน .. :)
Siddharth

บางทีมันอาจจะเป็นความคิดของความคิดที่จะซ่อนข้อผิดพลาดนึกคิด (SCNR)
bebbo

ฉันมีปัญหาเดียวกันเมื่อฉันอัปเดตปลั๊กอิน ฉันใช้ Android Studio 3.4 Canary 6
Saurabh Gaddelpalliwar

ฉันยังต้องเผชิญกับปัญหานี้ ในกรณีของฉันปัญหาอยู่ในข้อมูลระดับนิติบุคคล หากสมาชิกข้อมูลของคุณเป็นแบบส่วนตัวพวกเขาจะต้องสร้างเมธอด getter และ setter เนื่องจากวิธีนี้มีปัญหาอื่น ๆ ที่มีผลผูกพัน
Sumit Kumar

คำตอบ:


63

คำตอบนี้ล้าสมัยแล้ว สำหรับ Android 3.1 Studio ให้ไปที่คำตอบนี้

สิ่งหนึ่งที่คุณสามารถทำได้คือปิดการใช้งานบิลด์ภายนอก โดยคลิกที่ "ไอคอนการตั้งค่าคอมไพเลอร์" ในแผง "ข้อความที่สร้าง" ที่ปรากฏขึ้นเมื่อคุณมีข้อผิดพลาด คุณสามารถเปิดการตั้งค่าคอมไพเลอร์ได้โดยไปที่ไฟล์ -> การตั้งค่า -> คอมไพเลอร์ (Thanx ถึง @maxgalbu สำหรับเคล็ดลับนี้)

ป้อนคำอธิบายรูปภาพที่นี่

ยกเลิกการเลือก "ใช้บิลด์ภายนอก"

ป้อนคำอธิบายรูปภาพที่นี่

และคุณจะเห็นข้อผิดพลาดในคอนโซล

แก้ไข: หลังจากกลับไปที่ "internal build" อีกครั้งคุณอาจได้รับข้อผิดพลาดบางอย่างคุณสามารถแก้ไขได้ด้วยวิธีนี้: Android Studio: ปิดการใช้งาน "External build" เพื่อแสดงเอาต์พุตข้อผิดพลาดสร้างข้อผิดพลาดคลาสซ้ำ


การยกเลิกการเลือก "ใช้งาน Build ภายนอก" แนะนำข้อผิดพลาดสองข้อเมื่อฉันพยายามสร้างโครงการของฉัน: error: duplicate class: com.moberg.colorgame.BuildConfigและerror: duplicate class: com.moberg.colorgame.R
Moberg

3
@Moberg ปัญหาเดียวกันที่นี่ฉันเริ่มคำถามใหม่: stackoverflow.com/questions/17108393/…
Waza_Be

ตกลงฉันจะเห็นสิ่งที่เกิดขึ้นและตอบคำถามใหม่ถ้าฉันพบบางสิ่ง
Jorge Fuentes González

7
ฉันไม่มีแผง "ข้อความที่สร้าง" ... wtf?
maxgalbu

9
ฉันไม่เห็นตัวเลือกเหล่านี้ในขณะนี้ ฉันใช้ Android Studio 1.2.1.1
Andrew S

563

สำหรับ Android Studio 3.1 เลือกไอคอนด้านล่าง Build หนึ่งในหน้าต่าง Build

ปุ่มสลับดิบล็อกของ Studio Studio 3.1

สำหรับ Android Studio 3.3 (อาจเป็น 3.2.1) ไอคอนมีการเปลี่ยนแปลงแม้ว่าตำแหน่งจะเหมือนกัน:

ปุ่มสลับดิบล็อกของ Studio Studio 3.3

หน้าต่างการสร้างควรเปิดขึ้นเมื่อคุณเรียกใช้การสร้าง (เช่นจากเมนูสร้าง) หากคุณไม่เห็นคุณสามารถลองใช้ปุ่ม "สร้าง" ที่ด้านล่างของหน้าต่าง (สามารถมองเห็นได้ในภาพหน้าจอด้านบน) หรือผ่านเมนูดู→เครื่องมือ→เครื่องมือ Windows →สร้าง


ดีใจที่เห็นว่ามีผู้ลงคะแนนให้คำตอบนี้เป็นจำนวนมากและ Android Studio 3.1 ยังอยู่ในช่วงเบต้า 3 :-)
Ove Stoerholt

16
ไอคอนอะไรที่ฉันไม่สามารถหาได้และฉันไม่สามารถหาหน้าต่างสร้างได้
Sam

7
มันน่าเศร้าที่ฉันต้อง google และขุดผ่าน stackoverflow เพื่อหาวิธีดูผลลัพธ์ของคอมไพเลอร์ ขอบคุณ @boiledwater
spartygw

1
@shikharbansal ในกรณีที่ลิงค์รูปภาพแตกอีกครั้งไอคอนจะอยู่ที่ขอบด้านซ้ายของหน้าต่างสร้าง ดูเหมือนชนิดของมุมมองรายการที่แยกออกจาก "ab" ด้วยเครื่องหมายทับ
สูงสุด

4
IDE ของ Android เพียงแค่พูดว่า "มุมมองสลับ" .. สลับมุมมองของอะไร +1 สำหรับคำตอบนี้ Google ยังคงพยายามอย่างเต็มที่เพื่อปิดบังขั้นตอนการทำงานสำหรับนักพัฒนา
angryITguy

39

มันตั้งตรงไปตรงมาจริงๆ! เพียงไปที่การตั้งค่าคอมไพเลอร์ที่ Android Studio 2.2.3 และตั้งค่า--stacktraceคำสั่ง:

การตั้งค่าคอมไพเลอร์เพื่อเพิ่มคำสั่ง --stacktrace

จากนั้นเรียกใช้แอปอีกครั้ง


5
ถ้าตรงไปตรงมาเหมือนที่คุณพูดจริง ๆ กระทู้นี้จะไม่มีอยู่จริง
jungledev

1
@jungledev มันตั้งตรงไปตรงมาจริงๆ แต่ไม่ชัดเจนเกินไปที่จะรู้ :) การเปลี่ยนถ้อยคำในคำตอบของฉันเพื่อทำให้ชัดเจน
Antonio

1
ใน AS 4.0 ฉันตั้งค่านี้ --stacktrace แต่เอาท์พุทอยู่ที่ไหน นั่นคือคำถามเดิม
Steve White

@SteveWhite ในเอาต์พุตของคอนโซลขณะสร้าง
อันโตนิโอ

32

คุณอยู่บน Windows หรือไม่ เปิด cmd ค้นหาโฟลเดอร์โครงการของคุณและเรียกใช้ "gradlew build" สิ่งนี้ควรให้เอาต์พุตมากกว่า IDE แล้วคุณสามารถใช้ --info, --stacktrace และ --debug ที่นั่นได้


10
สวย! ตอนนี้ถ้าสามารถรวมเอาท์พุทเข้ากับ Android Studio ได้
ChaseTheSun

4
ความคิดของฉันอย่างแน่นอน IDE ไม่มีหน้าต่างสำหรับข้อผิดพลาดคอมไพเลอร์หรือไม่ ฉันเดิมพันว่าเราขาดอะไรไป แต่วิธีแก้ปัญหานี้ควรเพียงพอจนกว่าจะได้รับการจัดการ
Hadi Kocabas

4
"คุณอยู่บน windows เหรอ?" - สิ่งนี้ยังทำงานภายใต้ Ubuntu Linux ด้วย! ขอบคุณ! /[folder-where-you-installed-the-android-studio]/sdk/tools/templates/gradle/wrapper/gradlew build
geekQ

ฉันกำลังย้ายโครงการขนาดใหญ่จาก Eclipse ไปยัง Android Studio คำแนะนำที่ดีที่สุด: รับการสร้างบรรทัดคำสั่ง gradle ทำงานก่อนแล้วกังวลเกี่ยวกับ IDE ใหม่
Jerry Brady


15

ในกรณีของฉันฉันต้องการเปิดหน้าต่างเทอร์มินัลที่ด้านล่างซ้ายและเรียกใช้gradlew build --info:

ป้อนคำอธิบายรูปภาพที่นี่


5
@Pamblam Use ./gradlew
Rhys

1
นี่เป็นคำตอบเดียวที่ฉันพบในหน้านี้ซึ่งใช้งานได้ใน AS 4.0
Steve White


6

ฉันกำลังสร้างสิ่งที่ Jorge แนะนำ ไปที่ไฟล์ -> การตั้งค่า -> คอมไพเลอร์

ที่นี่คุณจะเห็นฟิลด์เพื่อเพิ่มตัวเลือกคอมไพเลอร์ที่คุณเสียบ --stacktrace


ฉันลองสิ่งนี้ใน AS 4.0 ฉันไม่รู้จะค้นหาผลลัพธ์ใด ๆ ที่อาจสร้างขึ้น
สตีฟไวท์

2

วิ่ง

gradlew --stacktrace 

ในเทอร์มินัลเพื่อดูรายงานฉบับเต็ม

สำหรับฉันมันเป็น

ภารกิจ: แอพ: compileDebugJavaWithJavac FAILED javacTask: การปล่อยซอร์ส 1.8 ต้องใช้รีลีสเป้าหมาย 1.8

ดังนั้นฉันจึงเพิ่ม

 compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

ในไฟล์ app.gradle / android และการสร้างเสร็จสมบูรณ์


เมื่อฉันทำสิ่งนี้ในเทอร์มินัล (ภายในโฟลเดอร์โปรเจ็กต์) มันบอกว่า BUILD SUCCESSFUL แต่เมื่อฉันสร้างด้วย Build -> สร้างโครงการฉันเห็นการแจ้งเตือนเดียวกันว่ามีข้อผิดพลาดในการคอมไพล์
Steve White

1

ในกรณีของฉันฉันมีการอ้างอิง findViewById ไปดูฉันได้ลบใน XML

หากคุณใช้ AS 3.1 และสูงกว่า:

  1. ไปที่การตั้งค่า> สร้างการดำเนินการและการปรับใช้> คอมไพเลอร์
  2. เพิ่ม - กลับไปที่ตัวเลือกบรรทัดคำสั่งคลิกนำไปใช้และตกลง
  3. ที่ด้านล่างของ AS คลิกที่ Console / Build (หากคุณใช้เวอร์ชั่นเสถียร 3.1.2 ขึ้นไป) ขยายพาเนลและเรียกใช้แอปของคุณอีกครั้ง

คุณควรเห็น stacktrace แบบเต็มในมุมมองที่ขยายและข้อผิดพลาดเฉพาะ


นี่คือ AS 4.0 มันยังคงล้มเหลวในลักษณะเดียวกัน ไม่มี stacktrace
Steve White

คุณเพิ่มธง --stacktrack --debug --info หรือไม่
Peterstev Uremgba

แน่ใจ แต่นั่นไม่ใช่ปัญหา ปัญหา (ใกล้ที่สุดเท่าที่ฉันจะบอก) ไม่มีหน้าต่างที่ปรากฏร่องรอยสแต็ก อย่างไรก็ตามมันเป็นไปได้ที่จะเรียกใช้ gradlew ด้วยมือในเทอร์มินัลเพื่อรับข้อมูล ในความคิดเห็นอื่นในหน้านี้ฉันบอกว่าวิธีใดใช้ได้ผล
Steve White

0

หากคุณอยู่ใน android studio 3.1 ให้ตรวจสอบว่าไฟล์ -> โครงสร้างโครงการ -> ความเข้ากันได้ของแหล่งข้อมูลนั้นว่างเปล่า มันไม่ควรมี 1.8 ชุด

จากนั้นกดตกลงโครงการจะซิงค์และข้อผิดพลาดจะหายไป


คำถามไม่ใช่วิธีทำให้ข้อผิดพลาดหายไป คำถามคือวิธีดูข้อความแสดงข้อผิดพลาด
Steve White

0

หลังจากแปลง android เป็น androidx

เปลี่ยนปัญหาห้องสมุดนำเข้าจะแก้ไข แบบนี้:

import androidx.appcompat.widget.Toolbar;  <<  like this

นำเข้า androidx.annotation.NonNull; << เช่นนี้

นำเข้า androidx.appcompat.app.ActionBarDrawerToggle; << เช่นนี้

นำเข้า androidx.drawerlayout.widget.DrawerLayout; << เช่นนี้

นำเข้า androidx.recyclerview.widget.RecyclerView; << เช่นนี้

นำเข้า androidx.appcompat.app.AppCompatActivity; << เช่นนี้


สิ่งนี้ไม่ได้ตอบคำถามของ OP: วิธีดูข้อผิดพลาดในการรวบรวม
Steve White

-2

ฉันแก้ไขข้อผิดพลาดนี้ "การรวบรวมล้มเหลวในการดูรายละเอียดข้อผิดพลาดของคอมไพเลอร์"

วิธีแก้ปัญหานั้นง่ายมาก: เพิ่ม Gradle ด้านล่างบรรทัดของรหัส

การใช้งาน 'com.google.android.gms: play-services-ads: 15.0.0'


บรรทัดของรหัสควรจะเพิ่มตรงไหน? คุณสามารถใช้ถ้อยคำใหม่ได้หรือไม่
harmonica141

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