Android Studio ไม่ได้ปรับใช้การเปลี่ยนแปลงกับแอป


96

บางครั้งสถานการณ์นี้เกิดขึ้นเมื่อกำลังพัฒนา ฉันจะทำการเปลี่ยนแปลงในซอร์สโค้ดของฉันกดบันทึกทั้งหมดแล้วเรียกใช้ แต่การเปลี่ยนแปลงจะไม่ปรากฏในแอปอย่างชัดเจน - (ฉันใช้อุปกรณ์สำหรับการทดสอบ) ฉันยังสามารถถอนการติดตั้งแอปบนอุปกรณ์ของฉันและกดเรียกใช้อีกครั้งและแอปที่ติดตั้งใหม่ยังไม่แสดงการเปลี่ยนแปลงในซอร์สโค้ด เมื่อสิ่งนี้เกิดขึ้นฉันต้องแก้ไขซอร์สกดเรียกใช้จากนั้นอาจมีเวอร์ชันใหม่ที่มีการเปลี่ยนแปลงที่ฉันคาดไว้ในอุปกรณ์

ฉันลองวิธีแก้ปัญหาที่นี่ด้วย แต่ดูเหมือนจะไม่ได้ผลบ่อยนัก

Android Studio - ปรับใช้แอปของฉันโดยไม่มีการเปลี่ยนแปลงใหม่


โปรดตรวจสอบนี้และนี้คำตอบ
Amit Vaghela

คุณพบวิธีแก้ปัญหานี้หรือไม่? ฉันเคยเผชิญกับสิ่งนี้มาก่อนและล้างสร้างใหม่หรือเพียงแค่รีสตาร์ท Android Studio ก็ใช้งานได้ แต่วันนี้ดูเหมือนจะไม่สามารถแก้ปัญหานี้ได้ ฉันกำลังถอนการติดตั้ง Studio และจะติดตั้งอีกครั้งและดูว่ามีอะไรเปลี่ยนแปลงหรือไม่ ฉันไม่เชื่อว่านี่เป็นปัญหาการเรียกใช้ทันที ฉันมีข้อสงสัยว่ามันเริ่มเกิดขึ้นหลังจากการติดตั้งด้วยตนเองที่ฉันทำในวันนี้โดยใช้adbจากเทอร์มินัล สิ่งที่ฉันได้ลอง: - ล้างสร้างใหม่ทำให้แคชไม่ถูกต้องและรีสตาร์ท Studio - บังคับให้หยุดล้างข้อมูลและถอนการติดตั้งแอพจากอุปกรณ์ - รีสตาร์ทคอมพิวเตอร์และอุปกรณ์
Gabriel Gularte

คำตอบ:


74

ฉันมีปัญหาเดียวกัน หัวข้อนี้ปรากฏขึ้นครั้งแรกเมื่อฉันค้นหา แก้ไขได้ (หวังว่าอย่างนั้น) โดยไม่ใช้คุณสมบัติ Instant Run อาจไม่ใช่ทางออกที่ดีที่สุด แต่ใช้ได้ผลในตอนนี้

เพียงไปที่ "File -> Settings -> Build, Execution, Deployement -> Instant Run" และปิดการใช้งาน ด้วย Android Studio นี้สร้างขึ้นใหม่ตั้งแต่ต้นทุกครั้ง แต่ก็ดีกว่าการสร้างไม่ถูกต้อง

มินิพูดจาโผงผาง: Android Studio เกือบแต่ละเวอร์ชันมาพร้อมกับบั๊กที่น่ารำคาญ พวกเขากำลังจะเปิดตัวเวอร์ชัน 2 แต่เบต้ายังคงเป็นบั๊กกี้ ฉันหวังว่าพวกเขาจะทำให้ IDE มีเสถียรภาพในอนาคตอันใกล้นี้


3
ฉันใช้ Android Studio 2.1 และยังคงมีปัญหาเดิม ทางออกเดียวคือปิดการใช้งานการรันทันที :(
radu_paun

5
มีปัญหานี้แม้ปิดใช้งาน "Instant Run" ค่อนข้างน่ารำคาญ !!! เป็น 2.1.2. 'Clean' ช่วย ...
pvllnspk

1
ถ้าคนอื่นยังมองหามันใน OS X คุณสามารถค้นหาได้ภายใต้File -> Preferences -> Build, Execution, Deployment
Gian Luca Scoccia

ฉันคิดว่าการปิดการใช้งานทันทีไม่ใช่วิธีแก้ปัญหาที่ดี มีประโยชน์มากมายและมีเพียงข้อบกพร่องเดียว
Milad Faridnia

3
ฉันใช้ Android Studio 3.2 Canary 13 โดยปิดใช้งาน Instant Run และปัญหานี้ยังคงมีอยู่
mr5

95

แก้ไข 2 (2020-03-09)

หากคุณใช้ gradle 6.0 ใน gradle-wrapper.properties คุณอาจพบสถานการณ์ที่คล้ายกันเนื่องจากมีข้อบกพร่องนี้ในเวอร์ชัน 6.0 ลอง 6.0.1 แทน


เมื่อวานนี้ (2018-03-27) Android Studio เผยแพร่การอัปเดตอย่างเป็นทางการจาก 3.0.1 ถึง 3.1 และดูเหมือนว่าผู้คนจำนวนมาก (รวมถึงฉัน) เริ่มพบปัญหานี้อีกครั้ง

เครดิตความคิดเห็น # 5 ที่นี่ด้านล่างคือวิธีแก้ไข:

ใน Android สตูดิโอไป>RunEdit Configuration

ภายใต้Before launch:หากคุณไม่พบGradle-aware Makeเช่นเดียวกับด้านล่าง:

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

เพิ่มGradle-aware MakeและTaskเว้นว่างไว้

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

คำเตือน : ฉันไม่รู้ว่าการกระทำเหล่านี้หมายถึงอะไรและจะทำให้เกิดผลข้างเคียงหรือไม่ ชื่นชมหากมีใครสามารถให้คำอธิบายเพิ่มเติมได้!

แก้ไข

ขอบคุณที่ @ChristopherSmit อ้างอิงหน้านี้กล่าวถึงซึ่งGradle-aware makeหมายความว่า "รวบรวมโครงการและเรียกใช้ Gradle"
ตอนแรกฉันเดาว่าอาจต้องRunใช้เวลานานขึ้นแม้ว่าจะไม่มีการเปลี่ยนรหัสก็ตาม แต่หลังจากการทดสอบครั้งที่สองจะยังเร็วกว่ามากหากไม่มีการเปลี่ยนแปลงรหัส
เนื่องจากความจริงที่ว่านี่เป็นตัวเลือกเริ่มต้นหากคุณสร้างโครงการใหม่โดยใช้ AS 3.1 ฉันคิดว่าการกำหนดค่านี้ค่อนข้างปลอดภัย


1
คุณจะพบคำอธิบายนี้ที่นี่: developer.android.com/studio/run/rundebugconfig.html ในตารางด้านล่าง "กำหนดการดำเนินการก่อนเปิดตัว"
Christopher Smit

ขอบคุณ! ฉันเสียเวลามากกว่า 24 ชั่วโมงในการแก้ไขรหัสของฉันและสงสัยว่าเหตุใดการเปลี่ยนแปลงรหัสจึงไม่ทำงาน ฉันไม่รู้เลยว่ามีเรื่องแบบนี้ด้วย
Bhavesh Bansal

ไม่ทำงาน: เกิดข้อผิดพลาดขณะสร้างการอ้างอิงแยก APK com.android.ide.common.process.ProcessException: ไม่สามารถเรียกใช้ aapt
android51130

1
@ android51130 ที่จริงผมพบว่า "โพสต์ขนาดใหญ่" ที่นี่ ดูเหมือนว่าการปิดใช้งานการรันทันทีจะแก้ได้
ศิระลำ

@SiraLam "run" ทำงานได้ดีกับการปิดการใช้งานทันทีปัญหาคือ "wtf เกิดขึ้นที่นี่" พร้อมกับรันในสตูดิโอ 3.1 ทันที ฉันต้องการการรันทันทีและคุณก็เช่นกัน :)))
android51130

40

ฉันมีปัญหาเดียวกันโดยใช้ Android Studio 2.0.0 แก้ไขได้โดยการสร้างโครงการของฉันใหม่

Build > Rebuild Project

รูปภาพ GUI

หรือโดยClean and Rerun

Run > Clean and Rerun

ทำความสะอาดและรีรัน


ฉันจำเป็นต้องทำทุกครั้งเมื่อใดก็ตามที่ฉันทำการเปลี่ยนแปลงบางอย่างในไฟล์ XML ของฉัน? อย่างที่ฉันเห็นว่าเมื่อใดก็ตามที่ฉันทำการเปลี่ยนแปลงในไฟล์ XML ของแอนิเมชั่น จะไม่ปรับใช้การเปลี่ยนแปลงใหม่จนกว่าฉันจะล้างและสร้างแอพใหม่อีกครั้ง
Jigar

นั่นคือปัญหา - ที่จะต้องดำเนินการกับทุกการเปลี่ยนแปลง .. google เข้ามาแก้ไขปัญหานี้ให้ "เรียกใช้" เพื่อบันทึกสร้างและปรับใช้
NBApps

10
2018 - AS 3.2.0 และเรายังคงต้องจัดการกับสิ่งนี้
Androiderson

2
ฉันพบปัญหานี้อย่างจริงจังหลังจากอัปเดตจาก AS 3.0 เป็น 3.1 ฉันต้องสร้างโครงการใหม่ทุกครั้ง ....
ศิระลำ

4
ปัญหาเดียวกันหลังจากอัปเดต AS จาก 3.0 เป็น 3.1
Bandzio

11

นี่เป็นจุดสะดุดจริงๆจนกระทั่งฉันรู้ว่าการเปลี่ยนแปลงของฉันจะต้องไม่ถูกเผยแพร่ไปยังไฟล์ที่เกี่ยวข้องทั้งหมด ...

หากคุณกำลังมีปัญหากับรูปแบบที่ผมเป็นคุณอาจพบว่าคุณจำเป็นต้องปรับปรุงรูปแบบในที่ละเอียด> เค้าโครง v17โฟลเดอร์ ฉันได้ทำการเปลี่ยนแปลงผ่านมุมมองออกแบบในโฟลเดอร์เลย์เอาต์และการเปลี่ยนแปลงเหล่านั้นดูเหมือนจะแพร่กระจายไปยังlayout-v17โดยอัตโนมัติในตอนแรก อย่างไรก็ตามการเปลี่ยนแปลงในภายหลัง WEREN'T

ตรวจสอบโฟลเดอร์res> layout-v17 ของคุณและดูว่าไฟล์. xmlในโฟลเดอร์นั้นแสดงถึงการเปลี่ยนแปลงที่คุณเห็นในโฟลเดอร์res> layoutหรือไม่ คุณอาจจะพบว่าพวกเขาไม่ทำเช่นนั้น แก้ไขและปรับใช้ใหม่ เช่นฉันคุณควรเห็นตัวดัดแปลงโค้ดใหม่

หวังว่านี่จะช่วยได้


2

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

ฉันสงสัยจริงๆว่ามันใช้ได้กับคนอื่นด้วยหรือเปล่า มาลองดูและแจ้งให้เราทราบ


สำหรับแอปพลิเคชันที่ตอบสนองได้การแก้ปัญหาคือการปิดและเปิดใช้งานเครื่องบรรจุปฏิกิริยาใหม่
Mike Lyons

2

ใน Android Studio 3.6.3 คุณสามารถเปิดใช้งานการรีสตาร์ทอัตโนมัติได้หากการรันทันทีล้มเหลว

เพียงไปที่ไฟล์ | การตั้งค่า | สร้างการดำเนินการการปรับใช้ | การปรับใช้และเลือกช่องทำเครื่องหมาย

การตั้งค่า


1

นอกจากนี้ฉันยังแก้ไขได้โดยไม่ใช้คุณสมบัติเรียกใช้ทันที อาจไม่ใช่ทางออกที่ดีที่สุด แต่ใช้ได้ผลในตอนนี้ ฉันใช้ Android Studio 2.0 beta 2 ...


1
โปรดอธิบายเพิ่มเติมเกี่ยวกับคำตอบของคุณเพื่อให้ผู้ใช้รายอื่นได้รับประโยชน์ ... เพิ่มทีละขั้นตอน ฯลฯ ...
Juan Boero

4
มีคนอื่นโพสต์ไว้เป็นคำตอบแล้ว แทนที่จะโพสต์ซ้ำให้ลองโหวตคำตอบที่มีอยู่เมื่อคุณมีตัวแทนเพียงพอแล้ว
OhBeWise

1

สำหรับฉันการวิ่งทันทีเป็นฝันร้ายเวลาในการสร้าง 2-5 นาทีและบ่อยครั้งที่น่าตกใจการเปลี่ยนแปลงล่าสุดไม่รวมอยู่ในบิลด์ ฉันขอแนะนำให้ปิดใช้งานการรันทันทีและเพิ่มบรรทัดนี้ใน gradle.properties:

android.enableBuildCache=true

การสร้างครั้งแรกมักใช้เวลาพอสมควรสำหรับโปรเจ็กต์ขนาดใหญ่ (1-2 นาที) แต่หลังจากแคชการสร้างที่ตามมามักจะเร็วเพียงชั่วพริบตา (<10 วินาที)

ได้รับสิ่งนี้ แนะนำจากผู้ใช้ reddit / u / QuestionsEverythangซึ่งช่วยให้ฉันไม่ต้องกังวลกับการเรียกใช้ทันที!


1

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


0

ปัญหาเดียวกันนี้เริ่มเกิดขึ้นหลังจากที่ฉันได้อัปเกรด buildVersion จาก 23. พยายามลบ AVD และสร้างใหม่ซิงค์กับ Gradle Files ไม่มีอะไรช่วย การติดตั้ง Andriod Studio ใหม่ทั้งหมดได้แก้ไขปัญหาแล้ว นี่อาจไม่ใช่วิธีแก้ปัญหา แต่ใช้ได้กับฉันเท่านั้น


0

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

อีกสิ่งหนึ่งที่ดูเหมือนจะใช้งานได้เกือบตลอดเวลา: ถอดปลั๊กและเชื่อมต่อโทรศัพท์ / อุปกรณ์สำหรับการพัฒนาของคุณใหม่ ดูเหมือนว่าจะบังคับให้ติดตั้งใหม่อย่างน้อยก็ในเครื่อง Linux ของฉัน


0

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

  1. กด "แอปล่าสุด"
  2. เพียงแค่ปิดแอพของฉันจากรายการ
  3. เรียกใช้แอปอีกครั้ง

นี้จะใช้เวลาเวลาน้อยกว่าที่สะอาดหรือสร้างใหม่

อัปเดต

รีรันแอปยังใช้งานได้:

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


0

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


0

ฉันมีปัญหาเดียวกันฉันลองทุกอย่างเช่นทำความสะอาดและสร้างใหม่การซิงค์แบบค่อยเป็นค่อยไปแม้กระทั่งการถอนการติดตั้งและติดตั้งแอป แต่พบว่าใช้งานได้ อุปกรณ์อื่น ๆ ทำงานได้ดี แต่ในมือถือของฉันปัญหายังคงเกิดขึ้น จากนั้นฉันก็รู้ว่าฉันบังเอิญเป็นไฟล์เลย์เอาต์ที่ซ้ำกันlayout-v26และกำลังทำการเปลี่ยนแปลงในไฟล์นั้นซึ่งเหตุใดการออกแบบจึงไม่อัปเดต ดังนั้นฉันเพิ่งลบเค้าโครงที่ซ้ำกันออกจากProject>app>main>res>layout-v26และปัญหาได้รับการแก้ไข ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณไม่ได้สร้างไฟล์ใด ๆ เหล่านี้โดยที่ไม่รู้ตัว


-1

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

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