エラー: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

Update 2(このアプローチに従ってください)

今はこれを行うべきではありません。代わりに、すべてのエラーを修正してください。これは、削除されるまでの回避策にすぎません。その後、とにかく手動でエラーを修正する必要があります。

Gradleプラグインを更新して3.3.0-alpha06、問題が解決するかどうかを確認してください。

更新1:

非ASCII文字の問題はAAPT2とAndroid Gradleプラグインで修正されました(そうです!)。AAPT2を無効にする代わりに、android gradleプラグインバージョン3.2.0-alpha11以降を使用するだけで、このエラーは発生しなくなります。

元の回答

Gradle 3.0のAndroidプラグインを使用すると、Aapt2がデフォルトで有効になります。

これは

増分リソース処理を改善する

ここに述べ

しかし、問題が発生している場合は、これを追加して以前のバージョンに戻すことができます gradle.properties

android.enableAapt2=false

しかしその後、androidTestの実行に問題があります。エラーClass not found: "com.app.someapp.TheTestClass" Empty test suite。ここを参照してください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
AN

1
非ASCII文字の問題はAAPT2とAndroid Gradleプラグインで修正されました(そうです!)。AAPT2を無効にする代わりに、android gradleプラグインバージョン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が言ったように、非推奨であり、削除が予定されています。これは、削除されるまでの回避策にすぎません。その後、とにかく手動でエラーを修正する必要があります。
ゾーイ

102

更新

これらの問題を修正する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>

    <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がクラッシュすることです。私がどこでエラーログを見つけたか知っていますか?
Ninja

@NinjaはGradleコンソールでログを確認できます。Logcatと同じです。
Enzokie、

3
あなたは解決策を提供していませんが、その原因の背後にある理論が関連しているかどうかは関係ありません。
クリス

1
@AhamadullahSaikatはOPと同様のスタックトレースを持っていますか?
Enzokie、

20

XMLレイアウトにエラーがありました。したがって、エラーがないかXMLレイアウトを確認してください。


1
この場合、エラーはもう少し具体的であるべきではありませんか?
Ewoks 2018年

1
残念ながら、@ Ewoksはありません。この正確なエラーは、XMLレイアウト文字列に特殊文字がある場合にスローされます。
SH7890

13

Android StudioのGradleコンソールタブ(デフォルトでは右下隅)を確認します。私の場合、このようなエラーがありました:

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

私はgradleユーザーの家を白や特殊文字なしで別の場所に設定する問題を解決しました:

C:\Android\.gradle

Gradle設定ダイアログで「サービスディレクトリパス」を設定できます。私の場合、以前の場所にある古い.gradleディレクトリを削除して、android studioを再起動する必要がありました。


私にとって問題は、ビルドをサービスとして実行するときにファイル名が長くなりすぎたということですC:\ Windows \ System32 \ config \ systemprofile \ .gradle \ .......... set GRADLE_USER_HOME = d:\。gradle fixed問題(私の場合はシステム環境変数)
Marc

サービスディレクトリパスにラテン語の "é"があったため、問題を解決するのに役立ちました。
ジャン=セバスチャン・ジェルヴェ

1
Android Studio 3.1以降、Gradleコンソールタブは削除されました。現在は[ビルド]タブにあります。[ビューの切り替え]ボタン(左側のビルドタブのハンマーボタンの下)をクリックして、Gradleの生の出力にビューを変更し、AAPT2エラーの原因となっている実際のエラーを表示します
georgiecasey

8

私の問題は、.9.pngで終わる画像ファイル名が原因でした。末尾を.pngに変更すると、問題は解消しました。トップメッセージは「:アプリ:タスクに失敗しました実行した:私はGradleのコンソールにスタックトレースからヒントを得た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
ありがとう、相棒!あなたは私のために2時間節約しました!
l33t

7

ここで同じ問題があります。@Izabela Orlowskaによって指摘されたように、この問題はパス内の特殊文字(AndroidのGrandleファイル、リソースなど)が原因である可能性が高いです。

私にとって:říフォルダー名を使用すると、すべての問題が発生しました。パスに特殊文字が含まれていないことを確認してください。AAPT2を無効にすることは、一時的な「解決策」にすぎません。プロジェクトパスに非ASCII文字が含まれていますAndroid Studio


5

3つのステップでエラーを修正しました
。1。問題のソースを確認しました
。2。正しい文字列/テキストを提供したのは、それが原因です。3 。
プロジェクトをクリーンアップしました。ビルドの下にあります。
私のプロジェクト


1
問題を特定するのに役立ちました。
Apple Appala

5

将来のある時点でAAPT(1)のサポートが廃止されるため、報告したエラーの理由を特定することをお勧めします。
\ app \ src \ main \ res \ layout \ topic_view_header.xmlファイルのコンテンツを提供できますか?疑問符から、AAPT2にまだ問題がある非ASCII文字を使用している可能性があります。本当に非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

Gradleバージョンである@AjayPandyaは、Android Gradleプラグインバージョンを更新する必要があります。プロジェクトのbuild.gradleファイルで、を持つように更新する必要がありますclasspath 'com.android.tools.build:gradle:3.2.0-alpha11'
Izabela Orlowska、

4

重要な更新

他の回答としてこの行をプロジェクトに追加しないでください。それは新しいGradleバージョンで既に解決されているため です。

プロジェクトレベルのbuild.gradleビルド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-wrapper.propertiesファイルでgradle-4.8を使用できなかったため、依存関係パスでも4.9の最新バージョンを使用する必要があり、gradle:3.3.0-alpha06
Kingston Fortune

元の投稿を更新するので、わかりやすくなります。
キングストンフォーチュン

どのgradleファイルにandroid.enableAapt2 = falseを記述する必要がありますか?
ニキ

@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

私の場合、#CC000007桁なので無効なカラーコードを使用していましたが、カラーコードには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キャッシュフォルダー内に見つからなかったファイルが原因で問題が発生しました。(Windows OS)

デフォルトのgradleパスは私のユーザーフォルダ内にありました。パスにはウムラウトとスペースが含まれていました。環境変数を設定しGRADLE_HOMEGRADLE_USER_HOMEウムラウトやパスにスペースを入れずに新しく作成したフォルダーにgradleフォルダーを移動しました。これで問題が解決しました。


2

私はここや他の多くのサイトで提案されたすべてを試しましたが、結局問題はBitdefender aaptをブロックわかりました...

Bitdefenderがインストールされている場合は、aapt&aapt2 " アプリケーションアクセスを有効にする必要があります。」を個別。

これがお役に立てば幸いです。


2

Android Studio 3.0.1のKotlinプロジェクトで個々のAndroid実装テストまたはテストクラスを(溝の実行アイコンをクリックして)実行しようとした後にこのエラーが表示された場合は、代わりに完全なテストパッケージ(テストパッケージを右クリックして[テストを実行]を選択)。

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

最も一般的なソリューションです。

しかし、私の場合、エラーはcompileSdkVersionbuildToolsVersionの異なるバージョンが原因でした

メジャーバージョンが同じに維持されていることを確認します。


「compileSdkVersion and buildToolsVersion」が最初にチェックするものです
vgulkevic

このandroid.enableAapt2 = falseを使用しないでください
Saurabh Gaddelpalliwar

このandroid.enableAapt2 = falseは使用しないでください。これは解決策ではありません。[ビルド出力]ボックスに正確に表示されているエラーを見つけ、[ビューの切り替え]をクリックして正確なエラーまたは例外を見つけ、compileSdkVersion 28 buildToolsVersion "28.0.3"を使用し、外部ライブラリまたは依存関係の削除または更新
Saurabh Gaddelpalliwar

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:\ユーザー\「特殊文字が表示されます」\ .androidは中国語で表示され、

そして今、私はパスを次のように変更しました:

C:\ Users \ hjc \ .android。

その理由は、特殊文字の問題です。このため、砂利のappt2Exception問題が発生します。


これは修正されました。Android Gradleプラグイン3.2.0-alpha11以降に更新すると、ファイルパス内の非ASCII文字で動作するようになりました。
Izabela Orlowska

2

私は非常に似た問題を抱えていました。Gradleのキャッシュ(Linuxでは〜/ .gradle / caches)を削除することで解決しました。これにより、Android Studioはすべてをダウンロードして再生成する必要がありました。


2

プロジェクトを閉じてAndroid Studioを再起動すると、この問題は修正されました。

再起動中に、Android Studioは不足しているSDKをダウンロードする必要があることを通知したため、問題が解決されると問題が修正されました。


2

これがまだ回答されているかどうかはわかりませんが、検討してみましょう。最近同様の問題に直面し、logcatの横にある[ビルド]タブから正確な問題を特定できました。私の問題は、XMLのfontfamilyエラーが原因でした。2018年3月のアップデートで最新バージョンのAndroid Studioを使用しています。


2

src/main/res/rawディレクトリで有効なファイルタイプを使用していることを確認してください。私の場合、.movファイルを他のファイルと一緒にres / rawディレクトリにコピーしました。問題は、aaptが.movファイルを処理しようとしていて、それをどうするかわからなかったことが原因であると考えています。


2

私はまったく同じ問題を抱えていました:Android Studio 3.1.2に更新した後、プロジェクトがAAPT2エラーでコンパイルされず、 styles.xmlずが見つからないことをました。AAPT2を無効にすることはもはや解決策ではありません。この設定は非推奨であり、2018年末に削除される予定です。

犯人は完全に無関係なlayout.xmlファイルのxml declerationの直前の空行でした...したがって、layout.xmlファイルは次のように始まりました:

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

空の行を削除し、すべてが再び魅力のように機能しました。信じられないと信じられないが、本当です。

ファイルがxml declerationで始まっていないため(空の行のため)、Android Studioは実際に警告を出しました。ただし、警告は、ファイルがエディターで開かれたときにのみ表示されます。


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

私の場合、実際の問題は、プロジェクトのランチャーミップマップアイコンを生成するために画像アセットを生成した後、生成されたファイルic_launcher_foreground.xml内でエラーが発生したことです(誤って生成されました)。ファイルの終わりに終了XMLタグがありませんでした。</ vector>がありませんでした。


2

以下を確認してみてください。問題を解決する必要があります。

  1. まず、ビルドウィンドウの下部からログをチェックして、プロジェクトに関連するエラーが表示されているかどうかを確認します。エラーが表示される場合は、それらをすべて修正してください。ビルドして再度実行すると、すべてのエラーが表示されます。Android Gradleプラグインを3.2.0に変更せずに、aapt2の問題を解消します。

  2. 次に、ビルドログにプロジェクト関連のエラーは表示されないが、aapt2エラーが表示される場合は、以下の手順で修正できます。

build.gradle以下のように、プロジェクトレベルのファイルでAndroid Gradleプラグインを更新します。

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

更新してください android.enableAapt2=true。次に、プロジェクトを確認してビルドします。

これらの手順のいずれかがaapt関連の問題を修正するために機能するはずです。


2

Kotlinを使用している場合、xmlファイルにいくつかの間違いがあるためにエラーが発生します。Kotlinでは、XMLエラーを見つけるのが非常に難しく、ビルドが失敗するだけです。正確なエラーログを知るには、Android Studioターミナルでコマンドを実行します。エラーを修正するのは簡単です。

./gradlew clean
./gradlew assemble

これらをターミナルで使用すると、実際に正確なエラーが表示されます。私の場合、それは空の可視属性です。ありがとうございました!
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ファイルからRepeat行を削除し、プロジェクトを再ビルドして完了します。


2

プロジェクトで次のことを確認します。

  • XMLファイルの先頭に空白スペースがないことを確認してください。

  • すべてのドローアブルファイルに、大文字や名前の特殊記号などの問題がないことを確認してください。

  • aapt2.exeが継続的に見つからない場合は、PC全体をスキャンしてください。adb.expまたはaapt2.exeを削除するウイルスがある可能性があります。

あなたが解決策を得ることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.