ความแตกต่างระหว่าง Make และ Build ใน Android Studio


138

เมนู Android Studio Build มีตัวเลือก ได้แก่

Make Project
Rebuild Project

ฉันควรใช้แต่ละครั้งเมื่อใด


26
คุณลืมอีกหนึ่งตัวเลือกที่สับสน: Clean Project
SMBiggs

คำตอบ:


138

ส่วนใหญ่เวลาที่คุณควรใช้ให้โครงการ บางครั้งหลังจากที่เพิ่มห้องสมุดและการเปลี่ยนแปลงที่ยิ่งใหญ่ให้กับโครงการที่คุณควรใช้สร้างโครงการ

หากคุณดูเมนูคุณจะเห็นว่าMake ProjectและCompileมีแป้นพิมพ์ลัดซึ่งแสดงให้เห็นว่ามักจะใช้ คนอื่นไม่ค่อยใช้

เหมือนกับ IntelliJ Idea

คอมไพล์ไฟล์ต้นฉบับทั้งหมดในขอบเขตที่ระบุจะถูกคอมไพล์ ขอบเขตในกรณีนี้อาจเป็นไฟล์แพ็กเกจ ฯลฯ

ทำให้ Projectเป็นซอร์สไฟล์ทั้งหมดในโปรเจ็กต์ทั้งหมดที่ถูกแก้ไขตั้งแต่คอมไพล์ล่าสุด นอกจากนี้ยังมีการรวบรวมไฟล์ซอร์สที่อ้างอิงตามความเหมาะสม นอกจากนี้งานที่เชื่อมโยงกับกระบวนการคอมไพล์หรือ make บนแหล่งที่มาที่แก้ไขจะถูกดำเนินการ ตัวอย่างเช่นการตรวจสอบความถูกต้อง EJB จะดำเนินการหากเปิดใช้งานตัวเลือกที่เกี่ยวข้องในหน้าการตรวจสอบความถูกต้อง

Make Module Compiled คือไฟล์ต้นฉบับทั้งหมดที่ได้รับการแก้ไขตั้งแต่การคอมไพล์ครั้งสุดท้ายในโมดูลที่เลือกและในโมดูลทั้งหมดนั้นขึ้นอยู่กับการเรียกซ้ำ

สร้างโครงการใหม่ไฟล์ต้นฉบับทั้งหมดในโครงการจะถูกคอมไพล์ใหม่ สิ่งนี้อาจจำเป็นเมื่อรายการ classpath มีการเปลี่ยนแปลงตัวอย่างเช่น SDK หรือไลบรารีที่ใช้เพิ่มลบหรือเปลี่ยนแปลง

คัดลอกจากIntelliJ Idea 13 ความช่วยเหลือ


ขอบคุณ. ฉันใช้ฟังก์ชั่นการค้นหาที่jetbrains.com/idea/webhelpแต่ไม่สามารถไปที่ไหนก็ได้ใกล้คำตอบที่เป็นประโยชน์
cja

6
ฉันยังไม่เห็นว่าจะใช้อันไหน
Kuno

1
@Kuno - ใช้Make projectเพื่อรวบรวมเฉพาะไฟล์ที่มีการเปลี่ยนแปลงซอร์สโค้ด ใช้โครงการสร้างใหม่เพื่อรวบรวมไฟล์ต้นฉบับทั้งหมด (ไม่ว่าจะมีการเปลี่ยนแปลงหรือไม่ก็ตาม)
Nanda

1
นี่ไม่ใช่คำตอบเพราะวิธีการคอมไพล์โปรเจ็กต์ของ Android Studio คือผ่าน gradle คำตอบที่ถูกต้องจะบอกว่าความแตกต่างในระดับประถมศึกษาคืออะไร
มิเกล

57

ความแตกต่างคือการสร้างใหม่ดำเนินการงานที่สะอาดของ gradle ก่อน หากคุณดูใน Gradle Console 'Rebuild Project' จะบอกว่าบางอย่างเช่น

Executing tasks: [clean, :app:compileDebugSources, :app:compileDebugAndroidTestSources]

ในขณะที่ "Make Project" จะไม่มี clean

Executing tasks: [:app:compileDebugSources, :app:compileDebugAndroidTestSources]

ฉันคิดว่ามันควรจะเป็นคำตอบที่ยอมรับ แต่ฉันพบบางสิ่งบางอย่างในขณะที่ 'Make Project' ในคอนโซลExecuting tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:compileDebugSources, :app:compileDebugAndroidTestSources, :app:compileDebugUnitTestSources]
gradle

ทุกครั้งที่ฉันกดMake Projectเสียงภายในบอกให้ฉันตีRebuild Projectเพื่อความแน่ใจ
iCantC

ขอบคุณ. คุณให้คำตอบฉันมากกว่า!
fateflame

1

ความแตกต่างระหว่างการสร้างและการสร้างใหม่คืองานที่ "สะอาด"

เมื่อคุณสร้างโปรเจ็กต์ใหม่มันจะทำการล้างด้วย

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