ได้รับข้อผิดพลาดว่า -“ ชื่อรายการ 'res / layout / test_toolbar.xml' ชนกัน” ในขณะที่สร้าง apk ที่ลงชื่อแล้ว


17

ฉันได้อัปเดตสตูดิโอ Android ของฉันจาก3.5.xเป็น3.6วันนี้และได้รับข้อผิดพลาดขณะสร้าง apk ที่ลงชื่อเพื่อสร้างชุดตัวเลือกที่แสดงข้อความต่อไปนี้ - ชื่อรายการ 'res / layout / test_toolbar.xml'ชนกันฉันไม่มีเลย์เอาต์เช่นนี้ หนึ่งในโครงการทั้งหมดเลย ฉันมีชุดตัวสร้างแบบกำหนดเองชื่อ " เวที " และเมื่อใดก็ตามที่ฉันพยายามสร้าง apk ที่ลงชื่อแล้วมันจะล้มเหลวเสมอ ฉันนับหาวิธีการแก้ปัญหาใด ๆ โปรดช่วยฉันด้วยปัญหานี้ ขอบคุณ

อัปเดต: ปัญหาเดียวกันสามารถเกิดขึ้นได้กับข้อความต่อไปนี้ด้วย (ตามที่ฉันพบในAS - 3.6.1 ) ดังนั้นไม่ต้องกังวลกับข้อความที่ไม่รู้จักและไม่สามารถแก้ไขได้ จนถึงตอนนี้ฉันพบข้อความประเภทใหม่สองข้อความขณะสร้าง apk ที่ลงชื่อ

  • Entry name 'kotlin/collections/MapWithDefault.kotlin_metadata' collided
  • Access Denied

วิธีแก้ไขก็เหมือนกัน บางครั้งคุณอาจต้องใช้Invalidate Cache and RestartAS ของคุณสำหรับเรื่องนี้ แจ้งให้เราทราบสิ่งที่คุณค้นพบ ขอบคุณ

คำตอบ:


16

ก่อนที่จะอ่านวิธีการแก้ปัญหาด้านล่างโปรดอ่านการอัปเดตของฉันจาก 01.04.2020 ปัญหานั้นลึกกว่าและมันอยู่ในรหัสของคุณ

ฉันมีปัญหาเดียวกันหลังจากการอัพเดท 3.6 นี้

* ทางออกที่รวดเร็วคือ: *

  1. ลบ projectFolder \ build
  2. ลบ projectFolder \ debug *
  3. ลบ projectFolder \ release *
  4. ลบ projectFolder \ app \ build
  5. ลบ projectFolder \ app \ build \ debug *
  6. ลบ projectFolder \ app \ build \ release *

ดังนั้นคุณต้องลบไดเร็กทอรี build, debug และ release ทั้งหมด

โปรดทราบว่าคุณอาจไม่สามารถลบไดเรกทอรีdebug และ releaseทั้งหมดได้ แต่คุณสามารถลบเนื้อหาทั้งหมดได้

UPD:

ฉันคิดว่าพวกเขาได้แก้ไขข้อผิดพลาดนี้แล้ววันนี้: ป้อนคำอธิบายรูปภาพที่นี่

UPD 03.03.2020: โชคร้าย, ข้อผิดพลาดไม่ได้รับการแก้ไข

UPD 01.04.2020: (ไม่ใช่เรื่องตลกที่ 1 เมษายน :))

ตั้งแต่เดือนที่ฉันทำงานร่วมกับนักพัฒนา Android Studio และวันนี้ฉันได้รับคำสั่งให้ใช้ jdk แทนที่จะใช้ jre เพราะหนึ่งในข้อผิดพลาดที่ลึกลงไปในบันทึกกล่าวว่า

หลังจากตั้งค่า jdk ( ไฟล์ -> โครงสร้างโครงการ -> SDK ที่ตั้ง -> ที่ตั้ง JDK ) แทน jre ฉันมีข้อผิดพลาดอื่นที่ไม่แสดงใน "build output" ดังนั้นฉันจึงเรียกใช้Analyze -> ตรวจสอบรหัสและได้รับข้อผิดพลาดEIGHTEENเช่นรหัสหมายถึงมุมมองที่ไม่ถูกต้องในรูปแบบข้อผิดพลาดกับการปฐมนิเทศ (สวัสดีtools:ignore="MissingDefaultResource") และข้อผิดพลาดในการประจักษ์ยังมีการวางแนว: ผมอ่านว่านี่คือบางส่วนปรับปรุงใหม่ใน 3.6.1 - เกี่ยวกับแนวนอนหรือแนวscreenOrientationถาวรได้อย่างรวดเร็วโดยสตูดิโอด้วยนี้ <activity tools:ignore="LockedOrientationActivity" />

เมื่อข้อผิดพลาดทั้งหมดได้รับการแก้ไขด้วยการวิเคราะห์ -> ตรวจสอบรหัสฉันได้สร้าง APK ที่เซ็นชื่อสำเร็จโดยใช้ jdk แล้วใช้ jre (สำหรับการทดสอบเท่านั้น)

โดยสรุปแล้วข้อผิดพลาดนี้เกิดขึ้นเนื่องจากข้อผิดพลาดลึกซึ่งคุณสามารถค้นหาได้ด้วยInspect Codeเครื่องมือเท่านั้น

ฉันคิดว่า AS จะไม่คิดว่านี่เป็นข้อผิดพลาดฉันคิดว่าพวกเขาจะบอกว่านี่เป็นคุณสมบัติใหม่สำหรับการปรับปรุงโค้ดของคุณ นอกจากนี้ฉันคิดว่าคุณควรลองตรวจสอบโค้ดของคุณแม้จะไม่ได้ตั้งค่า jdk แทนที่จะเป็น jre

คำแนะนำเพิ่มเติมจากการสนับสนุน AS:

BTW เมื่อการส่งออกreleaseสร้างเรายังทำงานซึ่งจะตรวจสอบพิเศษบางอย่างและมีข้อผิดพลาดบางทำเครื่องหมายว่าเป็นlintVital fatalการตรวจสอบนี้มีราคาแพงดังนั้นจึงไม่เกิดขึ้นในงานdebugสร้าง


1
ขอบคุณมาก. ฉันได้แก้ไขแล้ว คุณแน่ใจหรือว่านี่เป็นรุ่นที่เสถียร (จริง ๆ )
Saadat

1
@Sadadat ไม่ฉันได้ตรวจสอบแล้วตอนนี้ - ยังมีข้อบกพร่องอยู่
danyapd

ขอบคุณมาก. ฉันจะอัปเดตอีกครั้งโดยคาดหวังว่าจะได้รับการแก้ไข @danyapd
Saadat

ฉันพบว่าฉันต้องลบprojectFolder\app\[all flavor folders]ด้วย
drmrbrewer

1
ขอขอบคุณBuild > Rebuild Projectแก้ไขสำหรับฉันใน Android Studio 3.6.2
gregn3

7

ขณะสร้าง apk ให้ตรวจสอบโฟลเดอร์ปลายทางซึ่งจะลบ output.json และ app-debug.apk จากโฟลเดอร์ debug ลองสร้างสิ่งเดียวกันหลังจากนี้ AFAIK เป็นข้อผิดพลาดสำหรับ android studio หวังว่าพวกเขาจะแก้ไขได้ในไม่ช้า :)


1
ขอบคุณสำหรับคำตอบของคุณ ฉันทำเช่นเดียวกันและแก้ไขปัญหาของฉันแล้ว :)
Saadat

1
ขอบคุณมาก!! พบสิ่งนี้หลังจากการต่อสู้ 2.5 ชั่วโมง
Kishita Variya

ขอบคุณสำหรับสิ่งนี้ทำงานเหมือนมีเสน่ห์
Brian

4

ฉันลบเอาต์พุตบิลด์ก่อนหน้าสำหรับชุดบิลด์รวมถึงไฟล์ APK นั่นคือสิ่งที่ช่วยฉัน


1
ฉันลองลบbuildไดเรกทอรีโดยรวมแล้วยังมีปัญหาเดิมอยู่ คุณสามารถอธิบายรายละเอียดสิ่งที่คุณทำอย่างเต็มที่ได้ไหม?
Pusparaj

คุณลบ build directory ในรูทของโปรเจ็กต์และ app / build directory ด้วยหรือไม่ ในพา ธ เอาต์พุตโปรเจ็กต์ของฉันของ apk เปลี่ยนไปและฉันก็ลบไฟล์ apk ก่อนหน้านี้ตรงที่มันอยู่
Vladislav Vatrushkin

1

มันเกิดขึ้นเมื่อคุณใช้ auto viewBinding, Binding โดยใช้คุณสมบัติ Kotlin หรือ viewBinding 3.6

ในกรณีที่คุณกำลังเพิ่มไฟล์ที่องค์ประกอบแบ่งปันรหัสเดียวกันของ ViewBinding สับสนและสร้างข้อผิดพลาดดังกล่าว

ให้ฉันช่วยคุณในตัวอย่างคลาส Adaptor ที่มีไฟล์เลย์เอาต์สองไฟล์แยกตามประเภทมุมมอง

import kotlinx.android.synthetic.main.frag_subscription_recommend.view.*


override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
   return ViewHolder(
        LayoutInflater.from(parent.context).inflate(
            if (viewType == 1) {
                R.layout.frag_subscription_recommend
            } else
                R.layout.frag_subscription_common,
            parent,
            false
        )
    )
}

onBinding(){
  holder.itemView.id_button_submit.setOnClickListener {}
}

// ซึ่งในกรณีที่ทำให้เกิดความสับสนว่าทรัพยากรหรือรูปแบบเต็มรูปแบบเติมเต็มความต้องการ bcoz ทั้งสองมีรหัส ID เดียวกัน ในกรณีที่คุณต้องใช้:

 onBinding(){
  holder.itemView.findViewById<Button>(R.id.id_button_submit).setOnClickListener {}
}

ซึ่งเปิดใช้งานการใช้งานเก่า

แจ้งให้เราทราบว่าสิ่งนี้ทำงานเคียงข้างคุณหรือไม่


1
ขออภัยปัญหาเกิดขึ้นกับไดเรกทอรีการสร้างการดีบักและการเปิดตัว รวมถึงไฟล์ json เอาท์พุท ยังไงก็ตามขอบคุณสำหรับคำตอบของคุณ
Saadat

1

ฉันมีข้อผิดพลาดเดียวกันหลังจากอัปเดต android studio และฉันแก้ไขปัญหาด้วยการทำความสะอาดโครงการเท่านั้น (Build> Clean Project)! :)

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