Android Studio 3.1“ Run” ไม่รวบรวมโค้ด


87

เมื่อฉันพยายามติดตั้งแอปมีความเป็นไปได้สองประการ:

  1. ติดตั้ง APK ที่มีอยู่จากโฟลเดอร์ build เมื่อฉันเรียกใช้ไฟล์ app
  2. ติดตั้ง APK หลังจากดำเนินการ clean build

สำหรับ APK ที่มีอยู่ในโฟลเดอร์บิลด์แอปจะทำงานได้ดี แต่เมื่อฉันทำความสะอาดโปรเจ็กต์โดยใช้Build-> Clean Projectแล้วลองเรียกใช้app(เช่นติดตั้งแอพลงในโปรแกรมจำลองหรืออุปกรณ์จริงของฉัน) มันแสดงข้อผิดพลาด:

ไฟล์ APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk ไม่มีอยู่ในดิสก์

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

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

สิ่งที่ฉันได้ลอง:

  1. เรียกใช้แอปเมื่อมีไฟล์ APK อยู่ในโฟลเดอร์ build (ทำงานได้ดีอย่างสมบูรณ์)
  2. เรียกใช้Clean Project-> เรียกใช้แอป (คาดว่าโครงการจะถูกสร้างขึ้นและแอปจะได้รับการติดตั้ง แต่แสดงข้อผิดพลาดดังกล่าวข้างต้น!)
  3. กระบวนการเดียวกันในการทำความสะอาดและเรียกใช้แอปหลังจากทำ Invalidate Caches/Restart

3
Build -> Clean Project->Rebuild Project
IntelliJ Amiya

@IntelliJAmiya ตรงตามที่คุณพูด แต่ประเด็นคือเมื่อฉันสร้างโครงการใหม่มันใช้งานได้แน่นอน แต่ไม่ควรสร้าง APK และทำงานในลักษณะเดียวกันหากฉันเรียกใช้แอป
Sneh Pandya

ตรวจสอบคำตอบที่ลิงก์นี้: stackoverflow.com/a/49508278/3806413
0xAliHn

คำตอบ:


152

ฉันมีทางออกสำหรับปัญหาของคุณ หวังว่าจะช่วยได้!

ยังได้รับการยืนยันจากAndroid StudioบนTwitter : https://twitter.com/androidstudio/status/981914632892960768

1) โปรดแก้ไขการกำหนดค่าแอปของคุณตามด้านล่าง

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

2) คุณสามารถดูการกำหนดค่าแอปของคุณได้ที่นี่

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

3) ที่นี่ไม่มีแอตทริบิวต์การสร้าง Gradle-awareness ก่อนเปิดตัวการกำหนดค่า คุณสามารถดูได้ที่นี่

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

4) โปรดเพิ่มแอตทริบิวต์ Make Gradle-Aware ด้วยวิธีนี้ คลิกที่ไอคอน + และเลือก Gradle-awareness Make ตามที่เห็นในหน้าจอนี้

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

5) คุณสามารถเพิ่มสิ่งนี้ได้โดยไม่ต้องเขียนงานใด ๆ เพียงแค่กดปุ่มตกลงและงานจะถูกเพิ่มและตอนนี้ควรมีลักษณะเช่นนี้ ตอนนี้ใช้การเปลี่ยนแปลงและเรียกใช้แอปพลิเคชันของคุณ

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

หวังว่ามันจะแก้ปัญหาการติดตั้ง apk เก่านี้ในการสร้างใหม่ทั้งหมดใน android studio 3.1 ฉบับใหม่

หมายเหตุ:ปัญหานี้ได้รับการแก้ไขแล้วในAndroid Studio 3.1.1รุ่นเสถียรใหม่

Happy Coding !!


1
ดูเหมือนว่าหากคุณเปลี่ยนรหัสและเรียกใช้แอปจะไม่ได้สร้างแอปเพียงแค่เรียกใช้รหัสเก่า วิธีนี้ใช้ได้ผลสำหรับฉัน
Vicky

ไม่ทำงาน: การปิดเครื่องเสร็จสิ้นในข้อผิดพลาด 0ms ขณะสร้างการอ้างอิงแยก APK com.android.ide.common.process.ProcessException: ล้มเหลวในการเรียกใช้ aapt ที่ com.android.builder.core AndroidBuilder.processResources (AndroidBuilder.java:809) ที่ com .android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:797) ที่ com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp (InstantRunSplitApkBuilder.java:373)
android51130

@ android51130 มันใช้ได้ผลสำหรับฉัน คุณช่วยตรวจสอบการกำหนดค่าอื่น ๆ ของโครงการของคุณได้ไหม ฉันคิดว่าจะเป็นปัญหา
Sagar Kacha

@ android51130 ใช่แน่นอน ขณะนี้อยู่ในการเรียกใช้การกำหนดค่าทันทีของฉันปิดอยู่ วิธีนี้ใช้ได้ผลสำหรับฉัน
Sagar Kacha

1
ฉันมีปัญหานี้ใน AS 4.2 Canary build ล่าสุดเป็นเวลานาน สิ่งนี้แก้ไขปัญหานั้นได้ขอบคุณ
muthuraj

3

ไฟล์ APK /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk ไม่มีอยู่ในดิสก์

อาจจะเป็นบั๊ก คุณควรเปลี่ยนการตั้งค่า

คุณควรเปิดRun/Debug Configurations dialog& เลือกRun > Edit Configurations

ตรวจสอบให้แน่ใจว่าGradle-aware Makeมีการเพิ่มใน TaskList หรือไม่ หากไม่เป็นเช่นนั้นให้คลิก+& เลือกจากตัวเลือก

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

บันทึก

ถ้าคุณได้รับ

การปิดเครื่องเสร็จสิ้นในข้อผิดพลาด 0ms ขณะสร้างการอ้างอิงแยก APK com.android.ide.common.process.ProcessException: ไม่สามารถเรียกใช้ aapt ที่ com.android.builder.core AndroidBuilder.processResources (AndroidBuilder.java:809) ที่ com.android builder.core.AndroidBuilder.processResources (AndroidBuilder.java:797) ที่ com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp (InstantRunSplitApkBuilder.java:373)

INSTANT RUNคุณควรจะยกเลิกการตรวจสอบ

File-- Settings-- รูปร่าง, การดำเนินการปรับใช้ - Instant Run และ ยกเลิกการเลือกเปิดใช้งานได้ทันทีเรียกใช้


1
ใช่มันจะทำงานในการสร้างใหม่เนื่องจากมีการตั้งค่าการกำหนดค่าพร้อมกับรันทันที แต่จะไม่ทำงานกับการสร้างและรันโครงการแบบคลีนรวมกัน
Sagar Kacha

1
@SaguKacha แน่นอน.
IntelliJ Amiya

ไม่ทำงาน: การปิดเครื่องเสร็จสิ้นในข้อผิดพลาด 0ms ขณะสร้างการอ้างอิงแยก APK com.android.ide.common.process.ProcessException: ล้มเหลวในการเรียกใช้ aapt ที่ com.android.builder.core AndroidBuilder.processResources (AndroidBuilder.java:809) ที่ com .android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:797) ที่ com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp (InstantRunSplitApkBuilder.java:373)
android51130

@ android51130 อะไรของคุณbuildToolsVersion ??
IntelliJ Amiya

@IntelliJAmiya 26.0.2
android51130

2

ทำความสะอาดโครงการของคุณและเรียกใช้อีกครั้ง

ถ้ายังไม่ได้ผล

  • ขั้นตอนที่ 1ปิดโครงการของคุณ
  • ขั้นตอนที่ 2ไปที่โฟลเดอร์โครงการของคุณและลบโฟลเดอร์สร้างทั้งหมด
  • ขั้นตอนที่ 3เรียกใช้โครงการของคุณ

1
ลองปิดโปรเจ็กต์ปิด Android Studio และดำเนินการแคชที่ไม่ถูกต้อง / รีสตาร์ท แต่ไม่มีโชคหลังจากทำความสะอาดแอพมันจะแสดงข้อผิดพลาดเสมอและแปลกถ้าโปรเจ็กต์ถูกสร้างขึ้นมันจะรัน APK เดียวกันเสมอซึ่งอยู่ในโฟลเดอร์สร้างโดยไม่มี อัปเดตด้วยการเปลี่ยนแปลงใด ๆ
Sneh Pandya

คุณลองทำตามขั้นตอนที่ 2 ไหม ไปที่โฟลเดอร์โครงการของคุณและลบโฟลเดอร์สร้างทั้งหมดด้วยโฟลเดอร์สร้างโมดูล
Vishal Sojitra

ใช่ฉันลบโฟลเดอร์บิลด์ด้วยไม่มีอะไรทำงาน!
Sneh Pandya

instan ที่น่าพอใจทำงานและทำทุกอย่าง
Vishal Sojitra

คุณได้รับการแก้ไขหรือไม่
Vishal Sojitra

0

ปัญหานี้ได้รับการแก้ไขแล้วด้วยการเปิดตัว Android studio 3.1.1 (เมษายน 2018) อัปเดตสตูดิโอ Android ของคุณเป็น 3.1.1

มีคำอธิบายเกี่ยวกับรายละเอียดปัญหาสาเหตุและวิธีแก้ไขปัญหาดังนี้

ในบางกรณีเมื่อโปรเจ็กต์ที่สร้างขึ้นAndroid Studio 3.0 was opened for the first time in Android Studio 3.1, the Gradle-aware Make task was removed from the Before launch area in Run/Debug Configurations.ผลลัพธ์คือโปรเจ็กต์ไม่ได้สร้างขึ้นเมื่อคลิกปุ่ม Run หรือ Debug ซึ่งจะทำให้เกิดความล้มเหลวเช่นการปรับใช้ APK ที่ไม่ถูกต้องและเกิดปัญหาเมื่อใช้ Instant Run

เพื่อแก้ปัญหาAndroid Studio 3.1.1 adds the Gradle-aware Make task to the run configuration for projects that are missing this entry.นี้การปรับเปลี่ยนนี้เกิดขึ้นหลังจากการซิงก์ Gradle ครั้งแรกเมื่อโหลดโปรเจ็กต์

บันทึกประจำรุ่นอย่างเป็นทางการ: https://developer.android.com/studio/releases/index.html#3-1-0

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