Lỗi: com.android.tools.aapt2.Aapt2Exception: Lỗi AAPT2: kiểm tra nhật ký để biết chi tiết


137

Đây là đầu ra của bảng điều khiển Gradle của tôi, tôi không thể xây dựng dự án của mình

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



Bạn có thể thử chạy tác vụ assemblybleDebug để xác định vấn đề. Để biết thêm thông tin xin vui lòng đọc tại đây stackoverflow.com/a/47941174/1573414
AnteGemini

Câu trả lời:


112

Cập nhật 2 (Thực hiện theo phương pháp này)

Bạn không nên làm điều này bây giờ. Thay vào đó sửa tất cả các lỗi. Đây chỉ là một cách giải quyết cho đến khi nó được gỡ bỏ. Sau đó, bạn sẽ cần sửa lỗi bằng mọi cách.

Hãy thử cập nhật plugin gradle của bạn 3.3.0-alpha06để kiểm tra xem điều đó có khắc phục được sự cố của bạn không.

Cập nhật 1:

Các vấn đề về ký tự không phải mã ascii đã được khắc phục trong AAPT2 và plugin gradle android ngay bây giờ (yay!). Thay vì vô hiệu hóa AAPT2 bây giờ, bạn chỉ có thể sử dụng plugin Android gradle phiên bản 3.2.0-alpha11 hoặc mới hơn và bạn không gặp phải lỗi này nữa.

Câu trả lời gốc

Aapt2 được bật theo mặc định khi bạn sử dụng plugin Android cho lớp 3.0.

Cái này là để

cải thiện xử lý tài nguyên gia tăng

như đã nêu ở đây .

Nhưng nếu bạn đang gặp vấn đề với nó, bạn có thể chuyển về phiên bản trước bằng cách thêm phần này vào gradle.properties

android.enableAapt2=false

nhưng sau đó có vấn đề với việc chạy androidTest. Nó đưa ra lỗi Lớp không tìm thấy: "com.app.som Ứng dụng. Bộ kiểm tra rỗng" Bộ kiểm tra rỗng. Xem tại đây stackoverflow.com/questions/47969959/
Mạnh

29
Sau hành động này, tôi nhận được tin nhắn nàyProcess 'command 'D:\Android\sdk\Sdk\build-tools\27.0.3\aapt.exe'' finished with non-zero exit value 1
AN

1
Các vấn đề về ký tự không phải mã ascii đã được khắc phục trong AAPT2 và plugin gradle android ngay bây giờ (yay!). Thay vì vô hiệu hóa AAPT2 bây giờ, bạn chỉ có thể sử dụng plugin Android gradle phiên bản 3.2.0-alpha11 hoặc mới hơn và bạn không gặp phải lỗi này nữa.
Izabela Mitchowska

2
Nó hoạt động, nhưng tôi nhận được tin nhắn: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
KHÔNG SỬ DỤNG NÀY! Bất kỳ sự vô hiệu hóa các tính năng mới SILL vẫn phá vỡ dự án trong tương lai. Như Pranav Karnik đã nói, nó không được chấp nhận và được lên kế hoạch xóa: đây chỉ là một cách giải quyết cho đến khi nó bị xóa. Sau đó, bạn sẽ cần sửa lỗi bằng mọi cách.
Zoe

102

CẬP NHẬT

Một phiên bản mới của Gradle và plugin gradle Android có sẵn để khắc phục những vấn đề này.

build.gradle (cấp cao nhất)

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

gradle-wrapper.properies

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

TRẢ LỜI TRƯỚC

Nếu bạn tắt AAPT2, bạn chỉ đang ẩn vấn đề thực sự.

vui lòng lưu ý rằng AAPT1 có thể bị xóa trong tương lai do đó bạn buộc phải sử dụng AAPT2. Trên thực tế, hướng dẫn di chuyển không khó thực hiện vì bạn không thấy có nhiều thay đổi cùng lúc theo cách này là bằng chứng trong tương lai.

Hệ thống phân cấp thành phần trong bảng kê khai Android

Trong các phiên bản trước của AAPT, các thành phần được lồng trong các nút không chính xác trong tệp kê khai Android sẽ bị bỏ qua hoặc dẫn đến cảnh báo. Ví dụ, hãy xem xét các mẫu sau:

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

Do đó, bạn phải kiểm tra trước nếu bạn thực sự tuân theo cấu trúc Manifest chính xác như dưới đây.

Cấu trúc tệp kê khai

Đoạn mã dưới đây cho thấy cấu trúc chung của tệp kê khai và mọi phần tử mà nó có thể chứa. Mỗi phần tử, cùng với tất cả các thuộc tính của nó, được ghi lại đầy đủ trong một tệp riêng biệt.

<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 xin vui lòng. giải thích chính xác những gì sai với câu trả lời này để tôi có thể giải quyết?
Enzokie

Xin chào Enzokie, tôi có ngoại lệ aapt2 tương tự. Những gì tôi làm là cập nhật compileSdkVersion từ 21 đến 26, sau đó aapt2 crash. Bạn có biết nơi tôi tìm thấy nhật ký lỗi?
Ninja

@Ninja bạn có thể kiểm tra nhật ký trong bảng điều khiển Gradle, nó giống như Logcat.
Enzokie

3
Bạn chưa cung cấp giải pháp, chỉ là một lý thuyết đằng sau nguyên nhân của nó có thể có hoặc không có liên quan.
Chris - Jr

1
@AhamadullahSaikat bạn có stacktrace tương tự OP không?
Enzokie

20

Tôi đã có một lỗi trong bố cục XML của tôi. Vì vậy, kiểm tra bố trí xml của bạn cho các lỗi.


1
Không nên lỗi cụ thể hơn một chút trong trường hợp này?
Ewoks

1
Thật không may, không có @Ewoks. Lỗi chính xác này được đưa ra nếu có các ký tự đặc biệt trong chuỗi bố cục XML của bạn.
SH7890

13

Kiểm tra tab bảng điều khiển lớp trong studio android (theo mặc định ở góc dưới bên phải). Trong trường hợp của tôi đã có lỗi như thế này:

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

Tôi đã giải quyết vấn đề đặt nhà người dùng phân lớp đến một vị trí khác mà không có ký tự trắng hoặc đặc biệt:

C:\Android\.gradle

Bạn có thể định cấu hình cài đặt " Đường dẫn thư mục dịch vụ " trong hộp thoại Cài đặt Gradle. Trong trường hợp của tôi, cần phải xóa thư mục .gradle cũ trên vị trí trước đó và khởi động lại studio android.


Đối với tôi, vấn đề là tên tệp đã quá dài khi chạy bản dựng dưới dạng dịch vụ C: \ Windows \ System32 \ config \ systemprofile \ .gradle \ .......... đặt GRADLE_USER_HOME = d: \. gradle đã sửa vấn đề (trong trường hợp của tôi là Biến môi trường hệ thống)
Marc

Cảm ơn bạn, điều đó đã giúp tôi giải quyết vấn đề của mình khi tôi có một chữ "é" trong đường dẫn thư mục dịch vụ của mình.
Jean-Sébastien Gervais

1
Sau Android Studio 3.1, tab bảng điều khiển Gradle đã bị xóa. Bây giờ trong tab Build. Nhấp vào nút 'Toggle View' (trong tab xây dựng ở bên trái, bên dưới nút búa) để thay đổi chế độ xem thành đầu ra Gradle thô để xem lỗi thực sự gây ra lỗi AAPT2
AAPT2

8

Vấn đề của tôi là do tên tệp hình ảnh kết thúc bằng .9.png . Tôi đã thay đổi kết thúc thành .png và vấn đề biến mất. Tôi đã nhận được gợi ý từ theo dõi ngăn xếp trong bảng điều khiển Gradle: Thông báo hàng đầu là "Thực thi không thành công cho nhiệm vụ: app: mergeDebugResource " và thông báo dưới cùng là "com.android.builder. Png .AaptProcess $ NotifierProcessOutput.out"

Tôi mong đến ngày khi Gradle đưa ra các thông báo lỗi hữu ích hơn ...


8

Tôi chỉ gặp vấn đề này khi cố gắng sử dụng liên kết dữ liệu và khai báo thẻ bố cục. Tôi biết là hơi muộn nhưng vì bất kỳ ai gặp phải vấn đề này, tôi đã làm gì để giải quyết vấn đề sau rất nhiều lần thử là trên bố cục gốc của bạn khi bạn không sử dụng liên kết dữ liệu, ví dụ như vậy

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

gỡ bỏ

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"

và chỉ cần đặt nó vào thẻ bố cục của bạn ( đó là nếu bạn đang sử dụng liên kết dữ liệu )

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

và hy vọng nó sẽ hoạt động. Tôi android.enableAapt2=falsekhông làm việc được vì vậy tôi phải xóa mọi thứ và cố gắng tìm ra lý do tại sao tôi gặp lỗi khi đặt thẻ bố cục và sử dụng ràng buộc dữ liệu do đó tôi đã đưa ra giải pháp. Hy vọng nó giúp


1
Cảm ơn anh bạn! bạn đã tiết kiệm một giờ cho tôi.
Siamak SiaSoft

1
Cảm ơn anh bạn! Bạn đã tiết kiệm hai giờ cho tôi!
l33t

7

Có vấn đề tương tự ở đây. Như @Izabela Mitchowska đã chỉ ra, vấn đề này rất có thể là do các ký tự đặc biệt trong đường dẫn (tệp grandle android, tài nguyên, v.v.).

Đối với tôi: có řítrong tên thư mục gây ra tất cả các vấn đề. Hãy chắc chắn rằng bạn không có bất kỳ ký tự đặc biệt nào trong đường dẫn. Vô hiệu hóa AAPT2 chỉ là một "giải pháp" tạm thời. Đường dẫn dự án của bạn chứa studio android không phải ký tự ASCII


5

Tôi đã sửa lỗi LRI với ba bước
1. Tôi đã kiểm tra sự cố NGUỒN
2. Cung cấp đúng chuỗi / văn bản, đó là NGUYÊN NHÂN
3. Tôi đã làm sạch dự án, bạn sẽ tìm thấy nó trong BUILD.
Dự án của tôi


1
Cảm ơn đã giúp tôi xác định vấn đề của tôi!
Apple Appala

5

Vì tại một thời điểm nào đó trong tương lai, hỗ trợ cho AAPT (1) sẽ không được chấp nhận, sẽ rất tốt để xác định lý do cho lỗi bạn đã báo cáo.
Bạn có thể cung cấp nội dung của tệp \ app \ src \ main \ res \ layout \ topic_view_header.xml không? Từ các dấu hỏi, có thể bạn đang sử dụng các ký tự không phải ASCII, mà AAPT2 vẫn gặp một số rắc rối. Nếu đó thực sự là các ký tự không phải ASCII, vui lòng theo dõi lỗi trên https://issuetracker.google.com/68262818 .

Cập nhật : Sự cố được khắc phục trong plugin Android gradle phiên bản 3.2.0-alpha11 hoặc mới hơn.


Vui lòng xem tại đây stackoverflow.com/questions/47971366/
Khắc

@Konrad 404, @ izabela vẫn còn vấn đề tương tự trên lớp 4.1
Ajay Pandya

@AjayPandya đó là phiên bản gradle, bạn cần cập nhật phiên bản plugin gradle Android. Trong tệp build.gradle của dự án của bạn, bạn cần cập nhật để có classpath 'com.android.tools.build:gradle:3.2.0-alpha11'.
Izabela Mitchowska

4

Cập nhật quan trọng

Không thêm dòng này vào dự án của bạn như các câu trả lời khác. Bởi vì nó đã được giải quyết trong các phiên bản Gradle mới hơn .

Bạn có thể cập nhật phiên bản lớp xây dựng của mình ở cấp Dự ánbuild.gradle lên mới nhất.

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

gradle-wrapper.properies

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

Đó là tất cả! Đồng bộ hóa và chạy, Bingo!

Thông tin thêm Tài liệu Android

Nếu bạn thêm, bạn sẽ nhận được một cảnh báo android.enableAapt2=false

CẢNH BÁO: Tùy chọn 'android.enableAapt2' không được dùng nữa và không nên sử dụng nữa. Sử dụng 'android.enableAapt2 = true' để xóa cảnh báo này. Nó sẽ bị xóa vào cuối năm 2018.


Đây là câu trả lời tốt nhất tôi từng thấy cho đến nay, bởi vì nếu bạn cố gắng vô hiệu hóa aapt2, nó sẽ báo lỗi tại thời điểm viết bài này, tất cả những gì tôi phải làm là cập nhật gradle, và sau khi cập nhật, gradle cho tôi biết lỗi thực sự là gì, vấn đề là gì Trên thực tế, nó không cho phép tôi sử dụng gradle-4.8 trong tệp gradle-wrapper.properIES, tôi phải sử dụng 4.9 phiên bản mới nhất, cũng trong đường dẫn phụ thuộc, tôi phải sử dụng gradle: 3.3.0-alpha06
Kingston Fortune

Tôi sẽ cập nhật bài viết gốc, để dễ theo dõi hơn.
Kingston Fortune

Trong tập tin gradle nào tôi phải viết android.enableAapt2 = false ?
Niki

@nTri Chỉ tìm phần Giải pháp của câu trả lời, bạn không cần thêm android.enableAapt2=false.
Khemraj

Rất vui được giúp bạn @nTri :)
Khemraj

2

Tôi cũng gặp phải lỗi này. Đối với tôi, đó là khi thay đổi SDK mục tiêu từ 26 xuống 25. Tôi đã có thể khắc phục sự cố bằng cách thay đổi phiên bản phụ thuộc của appcompat từ

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

đến

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

Điều này sẽ cho phép trình biên dịch truy cập các thuộc tính kiểu dáng mà hiện tại nó không thể tìm thấy. Điều này thực sự sẽ khắc phục vấn đề thay vì che giấu vấn đề thực sự như Enzokie đề xuất.


2

Trong trường hợp của tôi, tôi đã sử dụng sai mã màu #CC00000không hợp lệ vì nó có 7 chữ số nhưng mã màu nên có 3 hoặc 6 hoặc 8 chữ số cộng với tiền tố #


2

Vô hiệu hóa vấn đề gây ra AAPT2 trong phát triển hơn nữa, trong trường hợp của tôi, lỗi được tạo khi tôi tạo biểu tượng ứng dụng.

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

Tôi giải quyết nó bằng cách loại bỏ dòng này

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

2

Như @Izabela Mitchowska đã chỉ ra: Trong trường hợp của tôi, sự cố xảy ra do một số tệp không thể tìm thấy trong thư mục bộ đệm. (Hệ điều hành Windows)

Đường dẫn lớp mặc định nằm trong thư mục người dùng của tôi. con đường chứa ô và một không gian. Tôi đã di chuyển thư mục gradle bằng cách cài đặt GRADLE_HOMEGRADLE_USER_HOMEbiến môi trường sang một số thư mục mới được tạo mà không có ô hoặc khoảng trắng trong đường dẫn. Điều này đã khắc phục vấn đề cho tôi.


2

Tôi đã thử mọi thứ được đề xuất ở đây và nhiều trang web khác, cuối cùng tôi đã phát hiện ra rằng vấn đề là do Bitdefender chặn aapt ....

Nếu bạn đã cài đặt Bitdefender thì bạn cần bật " Truy cập ứng dụng " aapt & aapt2 .

Hy vọng điều này là sử dụng.


2

Nếu bạn đã thấy lỗi này sau khi thử chạy các thử nghiệm hoặc lớp thử nghiệm triển khai Android riêng lẻ (bằng cách nhấp vào biểu tượng chạy trong máng xối) trong dự án Kotlin trong Android Studio 3.0.1, bạn có thể khắc phục lỗi bằng cách chạy gói thử nghiệm đầy đủ (bằng cách nhấp chuột phải vào gói thử nghiệm và chọn "Chạy thử nghiệm trong ...").

Có một lỗi đã biết trong Android Studio 3.0.1 khiến IDE chạy thử nghiệm triển khai Kotlin như các thử nghiệm JUnit thông thường, khiến thông báo lỗi của OP hiển thị trên máy của tôi. Lỗi được theo dõi tại https://issuetracker.google.com/issues/71056937 . Nó dường như đã được sửa trong Android Studio 3.1 Canary 7.


2

Theo đề xuất của người khác,

android.enableAapt2=false

là giải pháp phổ biến nhất.

Nhưng trong trường hợp của tôi, lỗi là do các phiên bản khác nhau trong compileSdkVersionbuildToolsVersion .

Hãy chắc chắn rằng phiên bản chính được duy trì như cũ.


"compileSdkVersion và buildToolsVersion" là điều đầu tiên cần kiểm tra
vgulkevic

Đừng sử dụng
android này.enableAapt2

Đừng sử dụng android.enableAapt2 = false, đây không phải là giải pháp. tìm ra lỗi hiển thị chính xác trong hộp Build Output của bạn, nhấp vào Toggle view để tìm lỗi chính xác hoặc ngoại lệ sử dụng compileSdkVersion 28 buildToolsVersion "28.0.3" và làm theo hướng dẫn xóa hoặc cập nhật thư viện bên ngoài hoặc phụ thuộc
Saurabh Gaddelpalliwar

2

Tôi đã nhận được lỗi này khi tên dự án rất dài và vị trí tôi đang lưu dự án, được thêm vào nó. Di chuyển dự án đến một vị trí khác để tên tệp không vượt quá giới hạn hệ thống đã giải quyết lỗi cho tôi.

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

Tôi cũng gặp vấn đề như vậy, bản gốc là khay hệ thống của máy tính của tôi theo đường dẫn này:

C: \ Users \ 'xuất hiện các ký tự đặc biệt' \ .android xuất hiện bằng tiếng Trung,

và bây giờ tôi đã thay đổi đường dẫn đến:

C: \ Người dùng \ hjc \ .android.

Lý do là vấn đề của các ký tự đặc biệt. Chính vì lý do này dẫn đến các vấn đề về appt2Exception sỏi


Điều này đã được sửa chữa ngay bây giờ. Nếu bạn cập nhật lên plugin gradle android 3.2.0-alpha11 hoặc mới hơn thì nó hoạt động với các ký tự không phải ascii trong đường dẫn tệp ngay bây giờ.
Izabela Mitchowska

2

Tôi đã có một vấn đề rất giống nhau. Nó đã được giải quyết bằng cách xóa bộ nhớ cache của lớp (~ / .gradle / caches trên linux), điều này buộc studio android phải tải xuống và tạo lại mọi thứ.


2

Đóng dự án và khởi động lại studio android đã khắc phục vấn đề này cho tôi.

Trong khi khởi động lại, studio android thông báo rằng cần tải xuống SDK bị thiếu, vì vậy một khi đã được xử lý, sự cố đã được khắc phục.


2

Tôi không chắc liệu điều này đã được trả lời cho bạn chưa nhưng cho phép tôi cân nhắc. Tôi đã gặp phải một vấn đề tương tự gần đây và tôi đã có thể xác định chính xác vấn đề từ tab xây dựng bên cạnh logcat. Vấn đề của tôi là do lỗi fontf Family trong XML. Tôi đang sử dụng phiên bản Android Studio mới nhất với bản cập nhật tháng 3 năm 2018.


2

Đảm bảo rằng bạn sử dụng các loại tệp hợp lệ trong src/main/res/rawthư mục của bạn . Trong trường hợp của tôi, tôi đã sao chép một tập tin .mov cùng với một loạt các tập tin khác vào thư mục res / raw của tôi. Tôi nghi ngờ vấn đề là aapt đã cố xử lý tệp .mov và không biết phải làm gì với nó.


2

Tôi có cùng một vấn đề: Sau khi cập nhật lên Android Studio 3.1.2, dự án của tôi sẽ không được biên dịch với lỗi AAPT2 cho tôi biết một số khả năng rút tiền được tham chiếu bởi styles.xml không thể tìm thấy. Vô hiệu hóa AAPT2 không còn là giải pháp nữa, vì cài đặt không được chấp nhận và sẽ bị xóa vào cuối năm 2018.

Thủ phạm là một dòng trống ngay trước khi giải mã xml trong một layout.xmltệp hoàn toàn không liên quan ... Vì vậy, layout.xmltệp bắt đầu như thế này:

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

Xóa dòng trống và mọi thứ hoạt động như một lần nữa. Không thể tin được và không thể, nhưng sự thật.

Android Studio thực sự đã đưa ra cảnh báo vì tệp không bắt đầu bằng trình giải mã xml (vì dòng trống). Nhưng cảnh báo chỉ hiển thị khi tệp được mở trong trình chỉnh sửa.


2

Thông báo lỗi này (lỗi AAPT2: kiểm tra nhật ký để biết chi tiết) không hữu ích vì nó không cho bạn biết vấn đề thực sự là gì.

Trong trường hợp của tôi, đó là do một tệp có thể vẽ XML tài nguyên bị thiếu.

error: failed linking file resources.

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

Tôi chỉ tìm ra bởi vì tôi đã gỡ bỏ các thay đổi trong tệp XML và lần này tôi nhận được một thông báo hữu ích hơn:

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

Trong trường hợp của tôi, vấn đề thực sự là sau khi tạo Image Asset để tạo biểu tượng mipmap của trình khởi chạy cho dự án của tôi, tệp được tạo ic_launcher_foreground.xml đã bị lỗi bên trong (được tạo sai). Thiếu thẻ đóng xml ở cuối tệp, </ vector> bị thiếu.


2

Kiểm tra và thử những điều dưới đây. Vấn đề cần được giải quyết.

  1. Trước hết hãy kiểm tra nhật ký của bạn từ dưới cùng của cửa sổ xây dựng xem có lỗi nào liên quan đến dự án hiển thị hay không. Nếu lỗi hiển thị thì sửa tất cả những cái đó. Bây giờ xây dựng và chạy lại sửa tất cả các lỗi xuất hiện. Nó sẽ loại bỏ vấn đề aapt2 mà không thay đổi plugin gradle Android thành 3.2.0.

  2. Thứ hai, nếu không có bất kỳ lỗi nào liên quan đến dự án hiển thị trong nhật ký xây dựng nhưng vẫn hiển thị lỗi aapt2 thì bạn có thể khắc phục bằng cách làm theo các bước dưới đây.

Cập nhật plugin cấp độ Android của bạn trong build.gradletệp cấp dự án của bạn như dưới đây:

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

Bây giờ cập nhật android.enableAapt2=true. Sau đó kiểm tra và xây dựng dự án của bạn.

Bất kỳ bước nào trong số này nên hoạt động để khắc phục các sự cố liên quan đến aapt.


2

Nếu bạn đang sử dụng Kotlin bị lỗi vì một số lỗi trong tệp xml. Trong kotlin rất khó tìm lỗi xml, xây dựng bị lỗi đơn giản. Để biết chính xác nhật ký lỗi chạy bên dưới lệnh trong Android Studio Terminal và thật dễ dàng để sửa lỗi.

./gradlew clean
./gradlew assemble

Sử dụng chúng trong thiết bị đầu cuối thực sự cho thấy lỗi chính xác. Trong trường hợp của tôi, đó là một attr tầm nhìn trống rỗng. Cảm ơn bạn!
Rami Jemli

2

Tôi đã gặp lỗi tương tự Lỗi AAPT2: kiểm tra nhật ký để biết chi tiết và tôi đã áp dụng các giải pháp trên, theo giải pháp phổ biến nhất, tôi đã mở gradle.properies và thêm dòng

android.enableAapt2 = sai

để tìm giải pháp, nhưng tôi đã gặp lỗi Quá trình 'lệnh' D: \ Android \ sdk \ Sdk \ build-tools \ 27.0.3 \ aapt.exe '' đã hoàn thành với giá trị thoát khác không 1

Nhưng sau nhiều lần tìm kiếm, tôi thấy rằng có vấn đề trong tệp xml của bố cục mà tôi đã lặp lại các dòng trong tệp xml của bố cục như sau:

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

Xóa các dòng Lặp lại từ tệp xml và xây dựng lại dự án và Xong.


2

Kiểm tra những điều sau trong dự án của bạn:

  • Đảm bảo rằng bất kỳ tệp XML nào không có khoảng trống khi bắt đầu tệp.

  • Đảm bảo rằng mọi tệp có thể vẽ không có bất kỳ vấn đề nào như chữ in hoa hoặc bất kỳ ký hiệu đặc biệt nào trong tên.

  • Nếu aapt2.exe của bạn bị thiếu liên tục thì vui lòng quét toàn bộ PC của bạn, Có thể có vi-rút đang loại bỏ adb.bao hoặc aapt2.exe

Hy vọng bạn sẽ có được giải pháp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.