ข้อผิดพลาด: com.android.tools.aapt2.Aapt2Exception: ข้อผิดพลาด AAPT2: ตรวจสอบบันทึกเพื่อดูรายละเอียด


137

นี่คือผลลัพธ์ของคอนโซล Gradle ของฉันฉันไม่สามารถสร้างโครงการของฉันได้

D:\Android Projects\....\app\src\main\res\layout\topic_view_header.xml
Error:error: resource attr/?? (aka -packagename- :attr/??) not found.
Error:error: resource attr/?? (aka -packagename-:attr/??) not found.
Error:error: resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:failed linking file resources.
Error:java.util.concurrent.ExecutionException: 
java.util.concurrent.ExecutionException: 
com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: 
com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for 
details
Error:Execution failed for task ':app:processDebugResources'.
> Failed to execute aapt
Information:BUILD FAILED in 27s
Information:11 errors
Information:0 warnings

Android Studio 3.0 RC 2



คุณสามารถลองรันงาน AssembleDebug เพื่อระบุปัญหา สำหรับข้อมูลเพิ่มเติมโปรดอ่านที่นี่stackoverflow.com/a/47941174/1573414
AnteGemini

คำตอบ:


112

อัปเดต 2 (ปฏิบัติตามแนวทางนี้)

คุณไม่ควรทำตอนนี้ แก้ไขข้อผิดพลาดทั้งหมดแทน นี่เป็นเพียงวิธีแก้ปัญหาเท่านั้นจนกว่าจะถูกลบออก หลังจากนั้นคุณจะต้องแก้ไขข้อผิดพลาดด้วยตนเอง แต่อย่างใด

ลองอัปเดตปลั๊กอิน gradle ของคุณ3.3.0-alpha06เพื่อตรวจสอบว่าสามารถแก้ไขปัญหาของคุณได้หรือไม่

อัปเดต 1:

ปัญหาเกี่ยวกับอักขระที่ไม่ใช่ ascii ได้รับการแก้ไขแล้วใน AAPT2 และปลั๊กอิน android gradle แล้ว (เย้!) แทนที่จะปิดใช้งาน AAPT2 ตอนนี้คุณสามารถใช้ android gradle plugin เวอร์ชัน 3.2.0-alpha11 หรือใหม่กว่าและคุณจะไม่พบข้อผิดพลาดนี้อีกต่อไป

คำตอบเดิม

Aapt2 ถูกเปิดใช้งานโดยค่าเริ่มต้นเมื่อคุณใช้ปลั๊กอิน android สำหรับ gradle 3.0

นี่คือการ

ปรับปรุงการประมวลผลทรัพยากรที่เพิ่มขึ้น

ตามที่ระบุไว้ที่นี่

แต่หากคุณประสบปัญหาคุณสามารถเปลี่ยนกลับไปใช้เวอร์ชันก่อนหน้าได้โดยเพิ่มสิ่งนี้ใน gradle.properties

android.enableAapt2=false

แต่หลังจากนั้นมีปัญหากับการเรียกใช้ androidTest ทำให้ไม่พบข้อผิดพลาด Class: "com.app.someapp.TheTestClass" ชุดทดสอบว่างเปล่า ดูที่นี่stackoverflow.com/questions/47969959/…
K.Os

29
หลังจากการดำเนินการนี้ผมได้รับผงชูรสนี้Process 'command 'D:\Android\sdk\Sdk\build-tools\27.0.3\aapt.exe'' finished with non-zero exit value 1

1
ปัญหาเกี่ยวกับอักขระที่ไม่ใช่ ascii ได้รับการแก้ไขแล้วใน AAPT2 และปลั๊กอิน android gradle แล้ว (เย้!) แทนที่จะปิดใช้งาน AAPT2 ตอนนี้คุณสามารถใช้ android gradle plugin เวอร์ชัน 3.2.0-alpha11 หรือใหม่กว่าและคุณจะไม่พบข้อผิดพลาดนี้อีกต่อไป
Izabela Orlowska

2
มันใช้งานได้ แต่ฉันได้รับข้อความ:The option 'android.enableAapt2' is deprecated and should not be used anymore. Use 'android.enableAapt2=true' to remove this warning. It will be removed at the end of 2018..
Mikemike

1
อย่าใช้สิ่งนี้! การปิดใช้งานคุณลักษณะใหม่จะยังคงทำให้โครงการเสียหายในอนาคต ดังที่ Pranav Karnik กล่าวว่ามันเลิกใช้งานแล้วและมีกำหนดนำออก: นี่เป็นเพียงวิธีแก้ปัญหาชั่วคราวจนกว่าจะถูกลบออก หลังจากนั้นคุณจะต้องแก้ไขข้อผิดพลาดด้วยตนเอง แต่อย่างใด
Zoe

103

อัปเดต

มีเวอร์ชันใหม่ของ Gradle และ Android-gradle-plugin ที่แก้ไขปัญหาเหล่านี้ได้

build.gradle (ระดับบนสุด)

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
}

gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-all.zip

คำตอบก่อนหน้านี้

หากคุณปิดใช้งาน AAPT2 คุณแค่ซ่อนปัญหาที่แท้จริง

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

ลำดับชั้นขององค์ประกอบในรายการ Android

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.myname.myapplication">
   <application
       ...
       <activity android:name=".MainActivity">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
           <action android:name="android.intent.action.CUSTOM" />
       </activity>
   </application>
</manifest>

ดังนั้นคุณต้องตรวจสอบก่อนว่าคุณปฏิบัติตามโครงสร้าง Manifest ที่ถูกต้องตามที่แสดงด้านล่างหรือไม่

โครงสร้างไฟล์ Manifest

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

<manifest>

    <uses-permission />
    <permission />
    <permission-tree />
    <permission-group />
    <instrumentation />
    <uses-sdk />
    <uses-configuration />  
    <uses-feature />  
    <supports-screens />  
    <compatible-screens />  
    <supports-gl-texture />  

    <application>

        <activity>
            <intent-filter>
                <action />
                <category />
                <data />
            </intent-filter>
            <meta-data />
        </activity>

        <activity-alias>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </activity-alias>

        <service>
            <intent-filter> . . . </intent-filter>
            <meta-data/>
        </service>

        <receiver>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </receiver>

        <provider>
            <grant-uri-permission />
            <meta-data />
            <path-permission />
        </provider>

        <uses-library />

    </application>

</manifest>

7
@Downvoters pls. อธิบายว่ามีอะไรผิดปกติกับคำตอบนี้เพื่อที่ฉันจะได้จัดการ?
Enzokie

สวัสดี Enzokie ฉันได้รับข้อยกเว้น aapt2 เหมือนกัน สิ่งที่ฉันทำคืออัปเดต compileSdkVersion จาก 21 เป็น 26 จากนั้น aapt2 crash คุณรู้หรือไม่ว่าฉันพบบันทึกข้อผิดพลาดที่ใด
Ninja

@Ninja คุณสามารถตรวจสอบบันทึกในคอนโซล Gradle ได้เหมือนกับ Logcat
Enzokie

3
คุณไม่ได้ให้วิธีแก้ปัญหาเป็นเพียงทฤษฎีเบื้องหลังสาเหตุที่อาจเกี่ยวข้องหรือไม่เกี่ยวข้องก็ได้
คริส - จูเนียร์

1
@AhamadullahSaikat คุณมี stacktrace ที่คล้ายกันกับ OP หรือไม่?
Enzokie

20

ฉันมีข้อผิดพลาดในรูปแบบ XML ของฉัน ดังนั้นตรวจสอบเลย์เอาต์ xml ของคุณเพื่อหาข้อผิดพลาด


1
ไม่ควรมีข้อผิดพลาดที่เฉพาะเจาะจงมากขึ้นในกรณีนี้?
Ewoks

1
น่าเสียดายที่ไม่มี @Ewoks ข้อผิดพลาดที่แน่นอนนี้จะเกิดขึ้นหากมีอักขระพิเศษในสตริงโครงร่าง XML ของคุณ
SH7890

13

ตรวจสอบแท็บคอนโซล gradle ใน android studio (โดยค่าเริ่มต้นที่มุมล่างขวา) ในกรณีของฉันมีข้อผิดพลาดดังนี้:

C:\Users\Jozef Bar??k\.gradle\caches\transforms-1\files-1.1\appcompat-v7-25.4.0.aar\d68bb9d2059935a7891196f4dfb81686\res\drawable-hdpi-v4\abc_ic_menu_share_mtrl_alpha.png: error: file not found.

Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
:app:mergeDebugResources FAILED

ฉันแก้ไขปัญหาการตั้งค่าหน้าแรกของผู้ใช้แบบไล่ระดับไปยังตำแหน่งอื่นโดยไม่มีสีขาวหรืออักขระพิเศษ:

C:\Android\.gradle

คุณสามารถกำหนดการตั้งค่า " เส้นทางไดเรกทอรีบริการ " ในกล่องโต้ตอบการตั้งค่า Gradle ในกรณีของฉันจำเป็นต้องลบไดเรกทอรี. gradle เก่าในตำแหน่งก่อนหน้าและรีสตาร์ท android studio


สำหรับฉันปัญหาคือชื่อไฟล์ยาวเกินไปเมื่อเรียกใช้บิลด์เป็นบริการ C: \ Windows \ System32 \ config \ systemprofile \ .gradle \ .......... ตั้งค่า GRADLE_USER_HOME = d: \. gradle fixed ปัญหา (ในกรณีของฉันเป็นตัวแปรสภาพแวดล้อมของระบบ)
Marc

ขอบคุณที่ช่วยฉันแก้ปัญหาของฉันเนื่องจากฉันมีภาษาละติน "é" ในเส้นทางไดเรกทอรีบริการของฉัน
Jean-Sébastien Gervais

1
หลังจาก Android Studio 3.1 แท็บคอนโซล Gradle ถูกลบออก ตอนนี้อยู่ในแท็บ Build คลิกปุ่ม 'สลับมุมมอง' (ในแท็บสร้างทางด้านซ้ายใต้ปุ่มค้อน) เพื่อเปลี่ยนมุมมองเป็นเอาต์พุต Gradle แบบดิบเพื่อดูข้อผิดพลาดจริงที่ทำให้เกิดข้อผิดพลาด
AAPT2

8

ปัญหาของฉันเกิดจากชื่อไฟล์รูปภาพที่ลงท้ายด้วย. 9.png ฉันเปลี่ยนตอนจบเป็น. pngและปัญหาก็หายไป ฉันได้รับคำแนะนำจาก stack trace ในคอนโซล Gradle: ข้อความด้านบนคือ "Execution failed for task: app: mergeDebugResources " และข้อความด้านล่างคือ "com.android.builder. png .AaptProcess $ NotifierProcessOutput.out"

ฉันหวังว่าจะถึงวันที่ Gradle แสดงข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์มากขึ้น ...


8

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

  <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">     </android.support.constraint.ConstraintLayout>

ลบไฟล์

xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"

และวางไว้บนแท็กเลย์เอาต์ของคุณ ( นั่นคือถ้าคุณใช้การผูกข้อมูล )

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

</layout>

และหวังว่ามันจะได้ผล สิ่งandroid.enableAapt2=falseนี้ไม่ได้ผลสำหรับฉันดังนั้นฉันจึงต้องลบทุกอย่างและพยายามหาสาเหตุที่ฉันได้รับข้อผิดพลาดเมื่อฉันวางแท็กเค้าโครงและใช้การผูกข้อมูลดังนั้นฉันจึงคิดวิธีแก้ปัญหา หวังว่าจะช่วยได้


1
ขอบคุณครับ! คุณช่วยฉันได้หนึ่งชั่วโมง
Siamak SiaSoft

1
ขอบคุณครับ! คุณช่วยฉันไว้สองชั่วโมง!
l33t

7

มีปัญหาเดียวกันที่นี่ ตามที่ @Izabela Orlowska ชี้ให้เห็นปัญหานี้มักเกิดจากอักขระพิเศษในเส้นทาง (ไฟล์ android grandle ทรัพยากร ฯลฯ ... )

สำหรับฉัน: การมีříชื่อโฟลเดอร์ทำให้เกิดปัญหาทั้งหมด ตรวจสอบให้แน่ใจว่าคุณไม่มีอักขระพิเศษในเส้นทาง การปิดใช้งาน AAPT2 เป็นเพียง "วิธีแก้ปัญหา" ชั่วคราว เส้นทางโครงการของคุณมี android studio ที่ไม่ใช่อักขระ ASCII


5

ฉันแก้ไขข้อผิดพลาดด้วยสามขั้นตอน
1. ฉันตรวจสอบปัญหา SOURCE
2. ระบุสตริง / ข้อความที่ถูกต้องมันคือสาเหตุ
3 ฉันทำความสะอาดโปรเจ็กต์คุณจะพบมันใน BUILD
โครงการของฉัน


1
ขอบคุณช่วยฉันระบุปัญหาของฉัน!
Apple Appala

5

เนื่องจากในอนาคตการสนับสนุน AAPT (1) จะถูกยกเลิกการสนับสนุนจึงเป็นการดีที่จะระบุสาเหตุของข้อผิดพลาดที่คุณรายงาน
คุณช่วยให้เนื้อหาของไฟล์ \ app \ src \ main \ res \ layout \ topic_view_header.xml ได้ไหม จากเครื่องหมายคำถามเป็นไปได้ว่าคุณกำลังใช้อักขระที่ไม่ใช่ ASCII ซึ่ง AAPT2 ยังคงมีปัญหาอยู่ ถ้ามันแน่นอนอักขระที่ไม่ใช่ ASCII แล้วโปรดทำตามข้อผิดพลาดในhttps://issuetracker.google.com/68262818

อัปเดต : ปัญหาได้รับการแก้ไขแล้วในปลั๊กอิน android gradle เวอร์ชัน 3.2.0-alpha11 หรือใหม่กว่า


โปรดดูที่นี่stackoverflow.com/questions/47971366/…
K.Os

@Konrad 404, @ izabela ยังคงเป็นปัญหาเดิมใน gradle 4.1
Ajay Pandya

@AjayPandya เป็นรุ่น gradle คุณต้องอัปเดตเวอร์ชันปลั๊กอิน android gradle ในไฟล์ build.gradle ของโปรเจ็กต์คุณต้องอัปเดตถึงจะมีclasspath 'com.android.tools.build:gradle:3.2.0-alpha11'โครงการของคุณคุณจะต้องปรับปรุงให้มี
Izabela Orlowska

4

การอัปเดตที่สำคัญ

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

คุณสามารถอัปเดตเวอร์ชัน build gradle ของคุณในระดับ Projectbuild.gradleให้เป็นเวอร์ชันล่าสุดได้

buildscript {
    dependencies {
        // choose latest if available
        classpath 'com.android.tools.build:gradle:3.3.0-alpha06'
    }
}

และgradle-wrapper.properties

// choose latest if available
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip

นั่นคือทั้งหมด! ซิงค์และเรียกใช้บิงโก!

ข้อมูลเพิ่มเติมเอกสาร Android

หากคุณเพิ่มคุณจะได้รับคำเตือน android.enableAapt2=false

คำเตือน: ตัวเลือก 'android.enableAapt2' เลิกใช้งานแล้วและไม่ควรใช้อีกต่อไป ใช้ 'android.enableAapt2 = true' เพื่อลบคำเตือนนี้ จะถูกลบออกในปลายปี 2018


นี่เป็นคำตอบที่ดีที่สุดที่ฉันเคยเห็นมาเพราะถ้าคุณพยายามปิดการใช้งาน aapt2 มันจะแสดงข้อผิดพลาดในขณะที่เขียนสิ่งที่ฉันต้องทำคืออัปเดต gradle และหลังจากการอัปเดต gradle บอกฉันว่าข้อผิดพลาดที่แท้จริงคืออะไร ที่จริงมันไม่ได้ให้ฉันใช้ gradle-4.8 ในไฟล์ gradle-wrapper.properties ฉันต้องใช้ 4.9 เวอร์ชันล่าสุดรวมถึงในเส้นทางการอ้างอิงด้วยฉันต้องใช้ gradle: 3.3.0-alpha06
Kingston Fortune

ฉันจะอัปเดตโพสต์ต้นฉบับเพื่อให้ง่ายต่อการติดตาม
Kingston Fortune

ซึ่งในไฟล์ gradle ผมต้องเขียนandroid.enableAapt2 = false ?
Niki

@nTri android.enableAapt2=falseดูเฉพาะสำหรับโซลูชั่นส่วนหนึ่งของคำตอบที่คุณไม่จำเป็นต้องเพิ่ม
เขมราช

ดีใจที่ได้ช่วย @nTri :)
Khemraj

2

ฉันยังพบข้อผิดพลาดนี้ สำหรับฉันมันคือเมื่อเปลี่ยน SDK เป้าหมายจาก 26 เป็น 25 ฉันสามารถแก้ไขปัญหาได้โดยเปลี่ยนเวอร์ชันการพึ่งพา appcompat จาก

implementation 'com.android.support:appcompat-v7:26.1.0'

ถึง

implementation 'com.android.support:appcompat-v7:25.4.0'

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


2

ในกรณีของฉันฉันใช้รหัสสีผิด#CC00000ซึ่งไม่ถูกต้องเพราะมี 7 หลัก แต่รหัสสีควรมี 3 หรือ 6 หรือ 8 หลักบวก # นำหน้า


2

การปิดใช้งาน AAPT2 mght ทำให้เกิดปัญหาในการพัฒนาเพิ่มเติมในกรณีของฉันข้อผิดพลาดถูกสร้างขึ้นเมื่อฉันสร้างไอคอนแอพ

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="108dp"
    android:height="108dp"
    android:viewportWidth="Infinity"
    android:viewportHeight="Infinity">
<path android:fillColor="#26A69A"
      android:pathData="M0,0h108v108h-108z"/>
<path android:fillColor="#00000000" android:pathData="M79,19L79,89"
      android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>

ฉันแก้มันโดยการลบบรรทัดนี้

    android:viewportWidth="Infinity"
    android:viewportHeight="Infinity"

2

ดังที่ @Izabela Orlowska ชี้ให้เห็น: ในกรณีของฉันปัญหาเกิดขึ้นเนื่องจากไฟล์บางไฟล์ที่ไม่พบในโฟลเดอร์ gradle cache (ระบบปฏิบัติการ Windows)

เส้นทางการไล่ระดับเริ่มต้นอยู่ภายในโฟลเดอร์ผู้ใช้ของฉัน เส้นทางมีเครื่องหมาย umlauts และช่องว่าง ฉันย้ายโฟลเดอร์ gradle โดยการตั้งค่าGRADLE_HOMEและGRADLE_USER_HOMEตัวแปรสภาพแวดล้อมไปยังโฟลเดอร์ที่สร้างขึ้นใหม่โดยไม่มีเครื่องหมาย umlauts หรือช่องว่างในเส้นทาง สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้


2

ฉันลองทุกอย่างที่แนะนำที่นี่และไซต์อื่น ๆ อีกมากมายในที่สุดฉันก็พบว่าปัญหาเกิดขึ้นกับBitdefenderปิดกั้น aapt ...

หากคุณติดตั้ง Bitdefender แล้วคุณต้องเปิด aapt & aapt2 " Application Accessทีละรายการ

หวังว่านี่จะเป็นประโยชน์


2

หากคุณเห็นข้อผิดพลาดนี้หลังจากพยายามเรียกใช้การทดสอบการใช้งาน Android หรือคลาสทดสอบแต่ละรายการ (โดยคลิกที่ไอคอนเรียกใช้ในรางน้ำ) ในโครงการ Kotlin ใน Android Studio 3.0.1 คุณสามารถแก้ไขข้อผิดพลาดได้โดยเรียกใช้ ชุดทดสอบแบบเต็ม (โดยคลิกขวาที่ชุดทดสอบและเลือก "เรียกใช้การทดสอบใน ... ")

มีข้อบกพร่องที่ทราบแล้วใน Android Studio 3.0.1 ที่ทำให้ IDE เรียกใช้การทดสอบการใช้งาน Kotlin เป็นการทดสอบ JUnit ปกติซึ่งทำให้ข้อความแสดงข้อผิดพลาดของ OP แสดงบนเครื่องของฉัน ข้อผิดพลาดที่มีการติดตามhttps://issuetracker.google.com/issues/71056937 ดูเหมือนว่าจะได้รับการแก้ไขแล้วใน Android Studio 3.1 Canary 7


2

ตามที่ผู้อื่นแนะนำ

android.enableAapt2=false

เป็นวิธีแก้ปัญหาที่พบบ่อยที่สุด

แต่ในกรณีของฉันข้อผิดพลาดเกิดจากเวอร์ชันที่แตกต่างกันในcompileSdkVersionและbuildToolsVersion buildToolsVersion

ตรวจสอบให้แน่ใจว่าเวอร์ชันหลักยังคงเหมือนเดิม


"compileSdkVersion and buildToolsVersion" เป็นสิ่งแรกที่ต้องตรวจสอบ
vgulkevic

2

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

C:\Users\<UserName>\AndroidStudioProjects\From Github\AdvancedAndroid_Emojify-TLIB.02-Exercise-DetectFaces\AdvancedAndroid_Emojify-TLIB.02-Exercise-DetectFaces\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Error:error: file not found.
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:mergeDebugResources'.
Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

2

ฉันมีปัญหาดังกล่าวเช่นกันต้นฉบับคือถาดระบบของคอมพิวเตอร์ของฉันเส้นทางนี้:

C: \ Users \ 'ปรากฏอักขระพิเศษ \ .android ปรากฏเป็นภาษาจีน

และตอนนี้ฉันเปลี่ยนเส้นทางไปที่:

C: \ Users \ hjc \ .android

สาเหตุคือปัญหาของอักขระพิเศษด้วยเหตุนี้เองที่นำไปสู่ปัญหาแอปพลิเคชันกรวด


นี้ได้ถูกแก้ไขแล้ว. หากคุณอัปเดตเป็น android gradle plugin 3.2.0-alpha11 หรือใหม่กว่าจะใช้งานได้กับอักขระที่ไม่ใช่ ascii ใน file-path ทันที
Izabela Orlowska

2

ฉันมีปัญหาที่คล้ายกันมาก แก้ไขได้โดยการลบแคชของ gradle (~ / .gradle / caches บน linux) ซึ่งบังคับให้ android studio ต้องดาวน์โหลดใหม่และสร้างทุกอย่างใหม่


2

การปิดโปรเจ็กต์และการรีสตาร์ท android studio ช่วยแก้ไขปัญหานี้ให้ฉัน

ในขณะที่รีสตาร์ท android studio แจ้งว่าจำเป็นต้องดาวน์โหลด SDK ที่หายไปดังนั้นเมื่อได้รับการดูแลแล้วปัญหาได้รับการแก้ไข


2

ฉันไม่แน่ใจว่าสิ่งนี้ได้รับคำตอบสำหรับคุณหรือยัง แต่ให้ฉันช่วยชั่งน้ำหนักฉันพบปัญหาที่คล้ายกันเมื่อไม่นานมานี้และฉันสามารถระบุปัญหาที่แน่นอนได้จากแท็บ build ที่อยู่ถัดจาก logcat ปัญหาของฉันเกิดจากข้อผิดพลาด fontfamily ใน XML ฉันใช้ Android Studio เวอร์ชันล่าสุดพร้อมอัปเดตเดือนมีนาคม 2018


2

ตรวจสอบให้แน่ใจว่าคุณใช้ประเภทไฟล์ที่ถูกต้องในsrc/main/res/rawไดเร็กทอรีของคุณ ในกรณีของฉันฉันได้คัดลอกไฟล์. mov พร้อมกับไฟล์อื่น ๆ ลงในไดเร็กทอรี res / raw ของฉัน ฉันสงสัยว่าปัญหาคือ aapt พยายามประมวลผลไฟล์. mov และไม่รู้ว่าจะทำอย่างไรกับมัน


2

ฉันมีปัญหาเดียวกันทุกประการ: หลังจากอัปเดตเป็น Android Studio 3.1.2 โครงการของฉันจะไม่คอมไพล์โดยมีข้อผิดพลาด AAPT2 บอกฉันว่า drawables บางส่วนของฉันซึ่งอ้างอิงโดย styles.xmlไม่สามารถได้ การปิดใช้งาน AAPT2 ไม่ใช่วิธีแก้ปัญหาอีกต่อไปเนื่องจากการตั้งค่านี้เลิกใช้งานแล้วและจะถูกลบออกในปลายปี 2018

ผู้ร้ายเป็นบรรทัดว่างก่อนการถอดรหัส xml ในlayout.xmlไฟล์ที่ไม่เกี่ยวข้องทั้งหมด... ดังนั้นlayout.xmlไฟล์จึงเริ่มต้นเช่นนี้:

//empty line//
<?xml version="1.0" encoding="utf-8"?>

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

Android Studio ให้คำเตือนเนื่องจากไฟล์ไม่ได้เริ่มต้นด้วยการถอดรหัส xml (เนื่องจากบรรทัดว่าง) แต่คำเตือนจะปรากฏเฉพาะเมื่อเปิดไฟล์ในโปรแกรมแก้ไข


2

ข้อความแสดงข้อผิดพลาดนี้ (ข้อผิดพลาด AAPT2: ตรวจสอบบันทึกเพื่อดูรายละเอียด) ไม่เป็นประโยชน์เนื่องจากไม่ได้บอกคุณว่าปัญหาที่แท้จริงคืออะไร

ในกรณีของฉันมันเกิดจากไฟล์ที่วาดได้ XML ของทรัพยากรที่ขาดหายไป

error: failed linking file resources.

org.gradle.tooling.BuildException: Failed to process resources, see aapt output above for details.

ฉันคิดออกเพียงเพราะฉันยกเลิกการเปลี่ยนแปลงในไฟล์ XML และคราวนี้ฉันได้รับข้อความที่เป็นประโยชน์มากขึ้น:

error: resource drawable/ic_filter_off (aka com.xxx:drawable/ic_filter_off) not found.

Message{kind=ERROR, text=error: resource drawable/ic_filter_off (aka com.xxx:drawable/ic_filter_off) not found., sources=[C:\code\xxx\app\src\main\res\layout\app_bar_main.xml:69], original message=, tool name=Optional.of(AAPT)}

2

ในกรณีของฉันปัญหาที่แท้จริงคือหลังจากสร้าง Image Asset เพื่อสร้างไอคอนตัวเรียกใช้งาน mipmap สำหรับโครงการของฉันไฟล์ic_launcher_foreground.xml ที่สร้างขึ้นมีข้อผิดพลาดภายใน (ถูกสร้างขึ้นอย่างไม่ถูกต้อง) ไม่มีแท็กปิด xml ในตอนท้ายของไฟล์, </ vector>หายไป


2

ตรวจสอบและลองสิ่งต่างๆด้านล่าง ปัญหาควรได้รับการแก้ไข

  1. ก่อนอื่นให้ตรวจสอบบันทึกของคุณจากด้านล่างของหน้าต่างบิลด์ว่ามีข้อผิดพลาดเกี่ยวกับโปรเจ็กต์ที่แสดงหรือไม่ หากแสดงข้อผิดพลาดให้แก้ไขทั้งหมด ตอนนี้สร้างและเรียกใช้อีกครั้งแก้ไขข้อผิดพลาดทั้งหมดที่เกิดขึ้น จะขจัดปัญหา aapt2 โดยไม่ต้องเปลี่ยนปลั๊กอิน android gradle เป็น 3.2.0

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

อัปเดตปลั๊กอิน Android gradle ของคุณในbuild.gradleไฟล์ระดับโปรเจ็กต์ของคุณดังนี้:

classpath 'com.android.tools.build:gradle:3.2.0-alpha13'

android.enableAapt2=trueตอนนี้ปรับปรุง จากนั้นตรวจสอบและสร้างโครงการของคุณ

ขั้นตอนเหล่านี้ควรใช้เพื่อแก้ไขปัญหาที่เกี่ยวข้องกับ aapt


2

หากคุณใช้ Kotlin ได้รับข้อผิดพลาดเนื่องจากข้อผิดพลาดบางอย่างในไฟล์ xml ใน kotlin พบข้อผิดพลาด xml ได้ยากมากสร้างการล้มเหลวอย่างง่ายดาย หากต้องการทราบบันทึกข้อผิดพลาดที่แน่นอนให้รันคำสั่งด้านล่างใน Android Studio Terminal และง่ายต่อการแก้ไขข้อผิดพลาด

./gradlew clean
./gradlew assemble

การใช้สิ่งเหล่านี้ในเทอร์มินัลแสดงข้อผิดพลาดที่แน่นอน ในกรณีของฉันมันเป็น Attr ทัศนวิสัยที่ว่างเปล่า ขอบคุณ!
Rami Jemli

2

ฉันได้รับข้อผิดพลาดเดียวกันกับข้อผิดพลาด AAPT2: ตรวจสอบบันทึกเพื่อดูรายละเอียดและฉันใช้วิธีแก้ปัญหาข้างต้นตามวิธีแก้ปัญหาที่พบบ่อยที่สุดฉันถูกเปิด gradle.properties และเพิ่มบรรทัด

android.enableAapt2 = false

สำหรับวิธีแก้ปัญหา แต่ฉันได้รับข้อผิดพลาด Process 'command' D: \ Android \ sdk \ Sdk \ build-tools \ 27.0.3 \ aapt.exe '' เสร็จสิ้นด้วยค่าออกที่ไม่ใช่ศูนย์ 1

แต่หลังจากการค้นหาหลายครั้งฉันพบว่ามีปัญหาในไฟล์ xml ของเลย์เอาต์ที่ฉันทำซ้ำบรรทัดในไฟล์ xml ของเลย์เอาต์ซึ่งมีดังต่อไปนี้:

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"

ลบบรรทัดการทำซ้ำออกจากไฟล์ xml และสร้างโครงการใหม่และเสร็จสิ้น


2

ตรวจสอบสิ่งต่อไปนี้ในโครงการของคุณ:

  • ตรวจสอบว่าไฟล์ XML ไม่มีพื้นที่ว่างเมื่อเริ่มต้นไฟล์

  • ตรวจสอบให้แน่ใจว่าไฟล์ที่วาดได้ไม่มีปัญหาเช่นตัวพิมพ์ใหญ่หรือสัญลักษณ์พิเศษใด ๆ ในชื่อ

  • หาก aapt2.exe ของคุณหายไปอย่างต่อเนื่องโปรดสแกนพีซีตัวเต็มของคุณอาจมีไวรัสที่กำลังลบ adb.exp หรือ aapt2.exe

หวังว่าคุณจะได้รับการแก้ปัญหา

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