Kesalahan: com.android.tools.aapt2.Aapt2Exception: Kesalahan AAPT2: periksa log untuk mengetahui detailnya

137

Ini adalah keluaran dari konsol Gradle saya, saya tidak dapat membangun proyek saya

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

Zeeshan Ali
sumber
Lihat pertanyaan
Enzokie
Anda dapat mencoba menjalankan tugas assembleDebug untuk mengidentifikasi masalah. Untuk informasi lebih lanjut silakan baca di sini stackoverflow.com/a/47941174/1573414
AnteGemini

Jawaban:

112

Perbarui 2 (Ikuti pendekatan ini)

Anda tidak harus melakukan ini sekarang. Sebaliknya, perbaiki semua kesalahan. Ini hanya solusi sampai dihapus. Setelah itu, Anda harus memperbaiki kesalahan secara manual.

Coba perbarui plugin gradle Anda 3.3.0-alpha06untuk memeriksa apakah itu memperbaiki masalah Anda.

Pembaruan 1:

Masalah karakter non-ascii telah diperbaiki di AAPT2 dan plugin gradle android sekarang (yay!). Alih-alih menonaktifkan AAPT2 sekarang Anda cukup menggunakan plugin gradle android versi 3.2.0-alpha11 atau yang lebih baru dan Anda seharusnya tidak mengalami kesalahan ini lagi.

Jawaban Asli

Aapt2 diaktifkan secara default saat Anda menggunakan plugin android untuk gradle 3.0.

Ini untuk

meningkatkan pemrosesan sumber daya tambahan

seperti yang dinyatakan di sini .

Tetapi jika Anda menghadapi masalah dengannya, Anda dapat beralih kembali ke versi sebelumnya dengan menambahkan ini gradle.properties

android.enableAapt2=false
Yashasvi
sumber
tapi setelah itu ada masalah dengan menjalankan androidTest. Ini memberikan Kelas kesalahan tidak ditemukan: "com.app.someapp.TheTestClass" Paket uji kosong. Lihat di sini stackoverflow.com/questions/47969959/…
K.Os
29
setelah tindakan ini saya mendapat pesan iniProcess 'command 'D:\Android\sdk\Sdk\build-tools\27.0.3\aapt.exe'' finished with non-zero exit value 1
AN
1
Masalah karakter non-ascii telah diperbaiki di AAPT2 dan plugin gradle android sekarang (yay!). Alih-alih menonaktifkan AAPT2 sekarang Anda cukup menggunakan plugin gradle android versi 3.2.0-alpha11 atau yang lebih baru dan Anda seharusnya tidak mengalami kesalahan ini lagi.
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..
Berhasil
1
JANGAN GUNAKAN INI! Penonaktifan fitur baru apa pun AKAN tetap merusak proyek di masa mendatang. Seperti yang dikatakan Pranav Karnik, ini sudah tidak digunakan lagi dan dijadwalkan untuk dihapus: ini hanya solusi sampai dihapus. Setelah itu, Anda harus memperbaiki kesalahan secara manual.
Zoe
103

MEMPERBARUI

Versi baru Gradle dan Android-gradle-plugin tersedia untuk memperbaiki masalah ini.

build.gradle (tingkat atas)

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

JAWABAN SEBELUMNYA

Jika Anda menonaktifkan AAPT2, Anda hanya menyembunyikan masalah sebenarnya.

Perlu diketahui bahwa AAPT1mungkin akan dihapus di masa mendatang oleh karena itu Anda terpaksa menggunakan AAPT2. Sebenarnya panduan migrasi tidak sulit untuk diikuti karena Anda tidak melihat banyak perubahan pada saat yang sama, cara ini adalah bukti masa depan.

Hierarki elemen dalam manifes Android

Di versi AAPT sebelumnya, elemen yang bertumpuk di node yang salah di manifes Android akan diabaikan atau menghasilkan peringatan. Misalnya, perhatikan contoh berikut:

<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>

Oleh karena itu Anda harus mengecek dulu apakah Anda benar-benar mengikuti struktur Manifest yang benar seperti yang ditunjukkan di bawah ini.

Struktur file manifes

Cuplikan kode di bawah ini menunjukkan struktur umum file manifes dan setiap elemen di dalamnya. Setiap elemen, bersama dengan semua atributnya, sepenuhnya didokumentasikan dalam file terpisah.

<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>
Enzokie
sumber
7
@Downoters pls. jelaskan apa yang salah dengan jawaban ini sehingga saya bisa membahasnya?
Enzokie
Hai Enzokie, saya mendapat pengecualian aapt2 yang sama. Yang saya lakukan adalah memperbarui compileSdkVersion dari 21 menjadi 26, lalu aapt2 macet. Apakah Anda tahu di mana saya menemukan log kesalahan?
Ninja
@Ninja Anda dapat memeriksa log di konsol Gradle, sama seperti Logcat.
Enzokie
3
Anda belum memberikan solusi, hanya teori di balik penyebabnya yang mungkin relevan atau tidak.
Chris - Jr
1
@AhamadullahSaikat apakah Anda mengalami stacktrace yang mirip dengan OP?
Enzokie
20

Saya mengalami kesalahan dalam tata letak XML saya. Jadi periksa tata letak xml Anda apakah ada kesalahan.

Benjamin Ronneling
sumber
1
Bukankah seharusnya kesalahan menjadi lebih spesifik dalam kasus ini?
Ewoks
1
Sayangnya, tidak ada @Ewoks. Kesalahan persis ini terjadi jika ada karakter khusus dalam string tata letak XML Anda.
SH7890
13

Periksa tab konsol gradle di studio android (secara default di pojok kanan bawah). Dalam kasus saya, ada kesalahan seperti ini:

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

Saya memecahkan masalah pengaturan rumah pengguna gradle ke lokasi lain tanpa karakter putih atau khusus:

C:\Android\.gradle

Anda dapat mengonfigurasinya dengan menyetel " Jalur direktori layanan " dalam dialog setelan Gradle. Dalam kasus saya, perlu untuk menghapus direktori .gradle lama di lokasi sebelumnya dan memulai ulang android studio.

Jozef
sumber
bagi saya masalahnya adalah nama file menjadi terlalu lama saat menjalankan build sebagai layanan C: \ Windows \ System32 \ config \ systemprofile \ .gradle \ .......... set GRADLE_USER_HOME = d: \. gradle fixed masalah (dalam kasus saya sebagai Variabel Sistem Lingkungan)
Marc
Terima kasih, yang membantu saya memecahkan masalah saya karena saya memiliki "é" latin di jalur direktori layanan saya.
Jean-Sébastien Gervais
1
Setelah Android Studio 3.1, tab konsol Gradle dihapus. Sekarang ada di tab Build. Klik tombol 'Toggle View' (di tab build di sebelah kiri, di bawah tombol palu) untuk mengubah tampilan ke keluaran Gradle mentah untuk melihat kesalahan sebenarnya yang menyebabkan kesalahan
AAPT2
8

Masalah saya adalah karena nama file gambar yang diakhiri dengan .9.png . Saya mengubah akhiran menjadi .png dan masalah menghilang. Saya mendapat petunjuk dari pelacakan tumpukan di konsol Gradle: Pesan teratas adalah "Eksekusi gagal untuk tugas: app: mergeDebugResources " dan pesan paling bawah adalah "com.android.builder. Png .AaptProcess $ NotifierProcessOutput.out"

Saya menantikan hari ketika Gradle mengeluarkan pesan kesalahan yang lebih berguna ...

Samil
sumber
8

Saya baru saja mengalami masalah ini saat mencoba menggunakan data bind dan mendeklarasikan tag tata letak. Saya tahu ini agak terlambat tetapi demi siapa pun yang menghadapi masalah ini, Apa yang saya lakukan untuk menyelesaikan masalah setelah begitu banyak upaya adalah bahwa pada tata letak root Anda ketika Anda tidak menggunakan data bind katakan misalnya ini

  <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>

Hapus

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"

dan letakkan saja di tag tata letak Anda ( yaitu jika Anda menggunakan data binding )

<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>

dan semoga berhasil. yang android.enableAapt2=falsetidak bekerja untuk saya jadi saya harus menghapus segala sesuatu dan mencoba untuk mencari tahu mengapa saya mendapatkan error ketika saya menempatkan tag tata letak dan penggunaan data yang mengikat sehingga saya datang dengan solusi. Semoga membantu

CodeAndWave
sumber
1
Terima kasih Bung! Anda menghemat satu jam untuk saya.
Siamak SiaSoft
1
Terima kasih Bung! Anda menghemat dua jam untuk saya!
l33t
7

Mengalami masalah yang sama di sini. Seperti yang ditunjukkan oleh @Izabela Orlowska, masalah ini kemungkinan besar disebabkan oleh karakter khusus di jalur (file Android grandle, sumber daya, dll ..).

Bagi saya: memiliki řínama folder menyebabkan semua masalah. Pastikan Anda tidak memiliki karakter khusus di jalur. Menonaktifkan AAPT2 hanyalah "solusi" sementara. Jalur proyek Anda berisi karakter non-ASCII android studio

Jiří
sumber
5

Saya memperbaiki ERROR dengan tiga langkah
1. Saya memeriksa masalah SOURCE
2. Memberikan string / teks yang benar, itu adalah PENYEBAB
3. Saya membersihkan proyek, Anda akan menemukannya di BUILD.
Proyek saya

Bukunmi
sumber
1
Terima kasih membantu saya mengidentifikasi masalah saya!
Apple Appala
5

Karena di masa mendatang dukungan untuk AAPT (1) tidak akan digunakan lagi, sebaiknya identifikasi alasan kesalahan yang Anda laporkan.
Bisakah Anda memberikan konten file \ app \ src \ main \ res \ layout \ topic_view_header.xml? Dari tanda tanya, mungkin saja Anda menggunakan karakter non-ASCII, yang AAPT2 masih bermasalah. Jika memang karakter non-ASCII, silakan ikuti bug di https://issuetracker.google.com/68262818 .

Pembaruan : Masalah telah diperbaiki di plugin gradle android versi 3.2.0-alpha11 atau yang lebih baru.

Izabela Orlowska
sumber
Silakan lihat di sini stackoverflow.com/questions/47971366/…
K.Os
@Konrad 404, @ izabela masih masalah yang sama di gradle 4.1
Ajay Pandya
@AjayPandya itu versi gradle, Anda perlu memperbarui versi plugin gradle android. Dalam file build.gradle proyek Anda, Anda perlu memperbarui untuk memilikinya classpath 'com.android.tools.build:gradle:3.2.0-alpha11'.
Izabela Orlowska
4

Pembaruan Penting

Jangan tambahkan baris ini ke proyek Anda sebagai jawaban lain. Karena sudah diselesaikan dalam versi Gradle yang lebih baru.

Anda dapat memperbarui versi build gradle di level Projectbuild.gradle ke yang terbaru.

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

dan gradle-wrapper.properties

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

Itu saja! Sinkronkan dan Jalankan, Bingo!

Info selengkapnya Dokumentasi Android

Jika Anda menambahkan, Anda akan mendapatkan peringatan android.enableAapt2=false

PERINGATAN: Opsi 'android.enableAapt2' tidak digunakan lagi dan sebaiknya tidak digunakan lagi. Gunakan 'android.enableAapt2 = true' untuk menghapus peringatan ini. Ini akan dihapus pada akhir 2018.

Khemraj
sumber
Ini adalah jawaban terbaik yang pernah saya lihat sejauh ini, karena jika Anda mencoba menonaktifkan aapt2 itu membuat kesalahan saat penulisan ini, yang harus saya lakukan hanyalah memperbarui gradle, dan setelah pembaruan, gradle memberi tahu saya apa kesalahan sebenarnya, masalah sebenarnya saya tidak mengizinkan saya menggunakan gradle-4.8 di file gradle-wrapper.properties, saya harus menggunakan versi terbaru 4.9, juga di jalur dependensi, saya harus menggunakan gradle: 3.3.0-alpha06
Kingston Fortune
Saya akan memperbarui posting asli, jadi lebih mudah untuk diikuti.
Kingston Fortune
Di file gradle mana saya harus menulis android.enableAapt2 = false ?
Niki
@nTri Carilah bagian Solusi saja dari jawaban, Anda tidak perlu menambahkan android.enableAapt2=false.
Khemraj
Senang bisa membantu Anda @nTri :)
Khemraj
2

Saya juga mengalami kesalahan ini. Bagi saya, itu adalah saat mengubah SDK target dari 26 menjadi 25. Saya dapat memperbaiki masalah dengan mengubah versi ketergantungan appcompat dari

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

untuk

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

Ini akan memungkinkan kompilator untuk mengakses atribut gaya yang saat ini tidak dapat ditemukannya. Ini sebenarnya akan memperbaiki masalah alih-alih menutupi masalah sebenarnya seperti yang disarankan Enzokie.

hlbaker
sumber
2

Dalam kasus saya, saya menggunakan kode warna yang salah #CC00000yang tidak valid karena memiliki 7 digit tetapi kode warna harus memiliki 3 atau 6 atau 8 digit plus # awalan

Suraj Vaishnav
sumber
2

Menonaktifkan AAPT2 mght menyebabkan masalah dalam pengembangan lebih lanjut, Dalam kasus saya, kesalahan terjadi saat saya membuat ikon aplikasi.

<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"/>

Saya menyelesaikannya dengan menghapus baris ini

    android:viewportWidth="Infinity"
    android:viewportHeight="Infinity"
TABZ
sumber
2

Seperti yang dikatakan @Izabela Orlowska: Dalam kasus saya, masalah terjadi karena beberapa file yang tidak dapat ditemukan di dalam folder cache gradle. (OS Windows)

Jalur gradle default ada di dalam folder pengguna saya. jalur berisi umlaut dan spasi. Saya memindahkan folder gradle dengan pengaturan GRADLE_HOMEdan GRADLE_USER_HOMEvariabel lingkungan ke beberapa folder yang baru dibuat tanpa umlaut atau spasi di jalur. Ini memperbaiki masalah saya.

Robin J.
sumber
2

Saya mencoba semua yang disarankan di sini dan banyak situs lain, saya akhirnya menemukan bahwa masalahnya ada pada Bitdefender yang memblokir aapt ....

Jika Anda telah menginstal Bitdefender maka Anda perlu mengaktifkan " Akses Aplikasi " aapt & aapt2 satu per satu.

Semoga ini berguna.

mcadamm4.dll
sumber
2

Jika Anda telah melihat kesalahan ini setelah mencoba menjalankan masing-masing pengujian implementasi Android atau kelas pengujian (dengan mengklik ikon jalankan di selokan) di proyek Kotlin di Android Studio 3.0.1, Anda bisa mengatasi kesalahan dengan menjalankan paket pengujian lengkap (dengan mengklik kanan pada paket pengujian dan memilih "Jalankan pengujian di ...").

Ada bug yang diketahui di Android Studio 3.0.1 yang menyebabkan IDE menjalankan pengujian implementasi Kotlin sebagai pengujian JUnit biasa, yang menyebabkan pesan error OP ditampilkan di komputer saya. Bug dilacak di https://issuetracker.google.com/issues/71056937 . Tampaknya telah diperbaiki di Android Studio 3.1 Canary 7.

Andrew Marshall
sumber
2

Seperti yang disarankan oleh orang lain,

android.enableAapt2=false

adalah solusi paling umum.

Namun dalam kasus saya, kesalahan tersebut disebabkan oleh versi yang berbeda di compileSdkVersion dan buildToolsVersion .

Pastikan versi mayor dipertahankan sama.

VickyAbishek
sumber
"compileSdkVersion dan buildToolsVersion" Adalah hal pertama yang diperiksa
vgulkevic
2

Saya mendapatkan kesalahan ini ketika nama proyek sangat panjang, dan lokasi tempat saya menyimpan proyek, ditambahkan ke dalamnya. Memindahkan proyek ke lokasi lain sehingga nama file tidak melewati batas sistem menyelesaikan kesalahan untuk saya.

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
Tanusha Kamat
sumber
2

Saya juga mengalami masalah seperti itu, yang asli adalah baki sistem komputer saya dengan jalur ini:

C: \ Users \ 'muncul karakter khusus' \. Android muncul dalam bahasa Cina,

dan sekarang saya mengubah jalur menjadi:

C: \ Users \ hjc \ .android.

Alasannya adalah masalah karakter khusus, untuk alasan inilah yang menyebabkan masalah gravel appt2Exception

George Williams
sumber
Ini telah diperbaiki sekarang. Jika Anda mengupdate ke android gradle plugin 3.2.0-alpha11 atau yang lebih baru, ini berfungsi dengan karakter non-ascii di file-path sekarang.
Izabela Orlowska
2

Saya punya masalah yang sangat mirip. Ini diselesaikan dengan menghapus cache gradle (~ / .gradle / cache di linux), yang memaksa studio android untuk mengunduh ulang dan menghasilkan ulang semuanya.

Quinn
sumber
2

Menutup proyek dan memulai ulang studio android memperbaiki masalah ini untuk saya.

Saat memulai ulang, android studio memberi tahu bahwa mereka perlu mendownload SDK yang hilang, jadi setelah diatasi, masalahnya telah diperbaiki.


sumber
2

Saya tidak yakin apakah ini telah dijawab untuk Anda, tetapi izinkan saya mempertimbangkannya. Saya menghadapi masalah serupa baru-baru ini dan saya dapat menunjukkan masalah yang sebenarnya dari tab build di sebelah logcat. Masalah saya disebabkan oleh kesalahan fontfamily di XML. Saya menggunakan Android Studio versi terbaru dengan pembaruan Maret 2018.

Binatang 77
sumber
2

Pastikan Anda menggunakan jenis file yang valid di src/main/res/rawdirektori Anda . Dalam kasus saya, saya telah menyalin file .mov bersama dengan banyak file lain ke direktori res / raw saya. Saya menduga masalahnya adalah aapt mencoba memproses file .mov dan tidak tahu apa yang harus dilakukan dengannya.

Tash Pemhiwa
sumber
2

Saya mengalami masalah yang persis sama: Setelah memperbarui ke Android Studio 3.1.2, proyek saya tidak dapat dikompilasi dengan kesalahan AAPT2 yang memberi tahu saya bahwa beberapa sumber daya dapat digambar yang dirujuk oleh styles.xmltidak dapat ditemukan. Menonaktifkan AAPT2 bukanlah solusi lagi, karena setelan ini tidak digunakan lagi dan akan dihapus pada akhir 2018.

Pelakunya adalah baris kosong tepat sebelum deklerasi xml dalam layout.xmlfile yang sama sekali tidak terkait ... Jadi layout.xmlfile tersebut dimulai seperti ini:

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

Menghapus baris kosong dan semuanya bekerja seperti pesona lagi. Luar biasa dan tidak mungkin, tapi benar.

Android Studio sebenarnya memberi peringatan karena file tidak dimulai dengan deklerasi xml (karena baris kosong). Namun peringatan tersebut hanya terlihat saat file dibuka di editor.

Andy
sumber
2

Pesan kesalahan ini (kesalahan AAPT2: periksa log untuk detailnya) tidak membantu karena tidak memberi tahu Anda apa masalah sebenarnya.

Dalam kasus saya, itu karena file drawable XML sumber daya yang hilang.

error: failed linking file resources.

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

Saya hanya mengetahuinya karena saya membatalkan perubahan pada file XML, dan kali ini saya mendapat pesan yang lebih bermanfaat:

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)}
cinta hidup
sumber
2

Dalam kasus saya, masalah sebenarnya adalah bahwa setelah membuat Image Asset untuk menghasilkan ikon mipmap peluncur untuk proyek saya, file yang dihasilkan ic_launcher_foreground.xml memiliki kesalahan di dalamnya (salah dibuat). Tidak ada tag penutup xml di akhir file, </ vector> tidak ada.

pengguna3098756
sumber
2

Periksa dan coba hal-hal di bawah ini. Masalah harus diselesaikan.

  1. Pertama-tama periksa log Anda dari bawah jendela build apakah ada kesalahan yang terkait dengan proyek yang ditampilkan atau tidak. Jika kesalahan muncul maka perbaiki semua itu. Sekarang bangun dan jalankan lagi perbaiki semua kesalahan yang muncul. Ini akan menghilangkan masalah aapt2 tanpa mengubah plugin gradle android ke 3.2.0.

  2. Kedua, jika tidak ada kesalahan terkait proyek yang ditampilkan di log build tetapi masih menunjukkan kesalahan aapt2, maka Anda dapat memperbaikinya dengan mengikuti langkah-langkah di bawah ini.

Perbarui plugin gradle android Anda di build.gradlefile level proyek Anda seperti di bawah ini:

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

Sekarang perbarui android.enableAapt2=true. Kemudian periksa dan bangun proyek Anda.

Salah satu dari langkah-langkah ini semestinya berfungsi untuk memperbaiki masalah terkait aapt.

0xAliHn
sumber
2

Jika Anda menggunakan Kotlin mendapatkan kesalahan karena beberapa kesalahan dalam file xml. Di kotlin sangat sulit untuk menemukan kesalahan xml, build gagal dengan mudah. Untuk mengetahui log kesalahan yang tepat, jalankan perintah di bawah ini di Terminal Android Studio dan mudah untuk memperbaiki kesalahan tersebut.

./gradlew clean
./gradlew assemble
Naveen Kumar M
sumber
Menggunakan ini di terminal sebenarnya menunjukkan kesalahan yang sebenarnya. Dalam kasus saya, itu adalah atribut visibilitas kosong. Terima kasih!
Rami Jemli
2

Saya mendapat kesalahan AAPT2 kesalahan yang sama: periksa log untuk detailnya, dan saya menerapkan solusi di atas, sesuai solusi yang paling umum, saya membuka gradle.properties dan menambahkan baris

android.enableAapt2 = false

untuk solusi, tetapi saya mendapat kesalahan Proses 'perintah' D: \ Android \ sdk \ Sdk \ build-tools \ 27.0.3 \ aapt.exe '' selesai dengan nilai keluar bukan nol 1

Tapi setelah banyak pencarian saya menemukan bahwa ada masalah pada file xml layout yang saya ulangi baris di file xml layout seperti di bawah ini:

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

Hapus Ulangi baris dari file xml dan bangun kembali proyek dan Selesai.

hetuka kodekar
sumber
2

Periksa hal-hal berikut dalam proyek Anda:

  • Pastikan file XML tidak memiliki ruang kosong saat memulai file.

  • Pastikan bahwa file drawable tidak memiliki masalah seperti huruf kapital atau simbol khusus dalam nama.

  • Jika aapt2.exe Anda hilang terus menerus, silakan pindai PC Anda secara lengkap, Mungkin ada virus yang menghapus adb.exp atau aapt2.exe

Semoga Anda mendapatkan solusi.

Pratik Butani
sumber