Подтвердить что ты не робот

Ошибка: com.android.tools.aapt2.Aapt2Exception: ошибка AAPT2: проверить журналы для получения более подробной информации

Это вывод моей консоли 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

4b9b3361

Ответ 1

Обновление 2 (следуйте этому подходу)

Вы не должны делать это сейчас. Вместо этого исправьте все ошибки. Это только обходной путь, пока его не уберут. После этого вам все равно придется вручную исправлять ошибки.

Попробуйте обновить плагин Gradle до 3.3.0-alpha06, чтобы проверить, исправит ли это вашу проблему.

Обновление 1:

В AAPT2 и плагине Android Gradle теперь исправлены проблемы с не-символами (да!). Вместо отключения AAPT2 теперь вы можете просто использовать плагин Android Gradle версии 3.2.0-alpha11 или новее, и вы больше не должны сталкиваться с этой ошибкой.

Оригинальный ответ

Aapt2 включен по умолчанию, когда вы используете плагин Android для Gradle 3.0.

Это для

улучшить обработку дополнительных ресурсов

как указано здесь.

Но если у вас возникли проблемы с ним, вы можете вернуться к предыдущей версии, добавив это в gradle.properties

android.enableAapt2=false

Ответ 2

ОБНОВИТЬ

Доступна новая версия 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 что 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>

Ответ 3

Откройте gradle.properties и добавьте следующее:

android.enableAapt2=false

введите описание изображения здесь

Примечание. - Иногда эта проблема возникает, когда приложение хранит изображение с девятью патчами. после снятия рабочего штрафа.

Ответ 4

У меня была ошибка в моем XML-макете. Поэтому проверьте свои xml-макеты на наличие ошибок.

Ответ 5

Проверьте вкладку консоли градиента в студии Android (по умолчанию в нижнем правом углу). В моем случае были такие ошибки:

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 home находился в другом месте без белых или специальных символов:

C:\Android\.gradle

Вы можете настроить его, установив " путь к каталогу службы " в диалоговом окне настроек "Градл". В моем случае необходимо было удалить старый каталог.gradle в предыдущем местоположении и перезапустить студию Android.

Ответ 6

Моя проблема связана с именем файла изображения, заканчивающимся на .9.png. Я изменил окончание на .png, и проблема исчезла. Я получил подсказку от трассировки стеки в Gradle консоли: Верхнее сообщение было "Не удалось завершить выполнение задания: приложение: mergeDebugResources", а нижнее сообщение было "com.android.builder PNG.AaptProcess $ NotifierProcessOutput.out."

Я с нетерпением жду того дня, когда Gradle выведет более полезные сообщения об ошибках...

Ответ 7

У меня была эта проблема при попытке использовать привязку данных и объявление тега макета. Я знаю, что это немного поздно, но ради тех, кто сталкивается с этой проблемой. Что я сделал, чтобы решить проблему после того, как было так много попыток, что в вашем корневом макете, когда вы не используете привязку данных, скажите, например, это

  <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 не работал для меня, поэтому мне нужно удалить все и попытаться выяснить, почему я получаю ошибку, когда я добавляю тег макета и использую привязку данных, поэтому я придумал решение. Надеюсь, поможет

Ответ 8

Имея ту же проблему здесь. Как указывала @Izabela Orlowska, эта проблема, скорее всего, вызвана специальными символами в пути (файлы grande android, ресурсы и т.д.).

Для меня: наличие ří в имени папки вызвало все проблемы. Убедитесь, что у вас нет специальных символов в дорожках. Отключение AAPT2 является лишь временным "решением". В вашем пути к проекту содержатся не-ASCII-символы android studio

Ответ 9

Даже я столкнулся с той же проблемой, и я получил это решение,

Перейдите к

gradle.properties

напишите приведенный ниже код и синхронизируйте свой проект

android.enableAapt2=false

Пример изображения

введите описание изображения здесь

Ответ 10

Поскольку в какой-то момент в будущем поддержка AAPT (1) будет устаревать, было бы полезно определить причину ошибки, о которой вы сообщали.
Не могли бы вы предоставить содержимое файла \app\src\main\res\layout\topic_view_header.xml? Из вопросительных знаков возможно, что вы используете символы, отличные от ASCII, с которыми AAPT2 все еще имеет некоторые проблемы. Если это действительно символы, отличные от ASCII, то, пожалуйста, выполните ошибку на https://issuetracker.google.com/68262818.

Обновление: проблема исправлена в плагине Android версии 3.2.0-alpha11 или новее.

Ответ 11

Я исправил ОШИБКУ тремя шагами
1. Я проверил проблему SOURCE
2. При условии правильной строки/текста это была ПРИЧИНА
3. Я очистил проект, вы найдете его под BUILD.
My project

Ответ 12

Важное обновление

Не добавляйте эту строку в свой проект в качестве других ответов. Потому что это уже разрешено в более новых версиях Gradle.

Вы можете обновить версию Gradle сборки на уровне проекта build.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 года.

Ответ 13

Я также столкнулся с этой ошибкой. Для меня это было при изменении целевого SDK с 26 до 25. Я смог исправить проблему, изменив версию зависимости appcompat от

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

to

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

Это позволит компилятору получить доступ к атрибутам стиля, которые он в настоящее время не может найти. Это фактически устранит проблему, а не маскирует реальную проблему, как предположил Энцоки.

Ответ 14

В моем случае я использовал неправильный код цвета #CC00000 который недопустим, потому что он имеет 7 цифр, но цветовой код должен иметь префикс 3 или 6 или 8 цифр плюС#

Ответ 15

Отключение проблемы AAPT2 может привести к дальнейшей разработке. В моем случае возникла ошибка при создании значка приложения.

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

Ответ 16

Как отметила @Izabela Orlowska: В моем случае проблема возникла из-за некоторых файлов, которые не могли быть найдены внутри папки кэша градиента. (ОС Windows)

По умолчанию путь градиента находился в моей папке пользователя. путь содержал умлауты и пространство. Я переместил папку GRADLE_HOME GRADLE_USER_HOME переменную среды GRADLE_HOME и GRADLE_USER_HOME в какую-либо новую созданную папку без umlauts или пробелов в пути. Это поставило проблему для меня.

Ответ 17

Я попробовал все, что было предложено здесь и во многих других сайтах, я в конце концов понял, что проблема в том, что Bitdefender блокирует aapt....

Если у вас установлен Bitdefender, вам необходимо поменять aapt & aapt2 "Application Access" по отдельности.

Надеюсь, это полезно.

Ответ 18

Если вы заметили эту ошибку, попробовав выполнить отдельные тесты внедрения или тестовые классы Android (щелкнув значок запуска в желобе) в проекте Kotlin в Android Studio 3.0.1, вы можете обойти эту ошибку, вместо этого полный тестовый пакет (щелкнув правой кнопкой мыши на тестовом пакете и выбрав "Run tests in...").

Известна ошибка в Android Studio 3.0.1, которая заставляет IDE запускать тесты внедрения Kotlin в качестве регулярных тестов JUnit, что вызвало сообщение об ошибке OP на моей машине. Ошибка отслеживается на странице https://issuetracker.google.com/issues/71056937. Он, похоже, был исправлен в Android Studio 3.1 Canary 7.

Ответ 19

Как предложили другие,

android.enableAapt2=false

является наиболее распространенным решением.

Но в моем случае ошибка была вызвана разными версиями в compileSdkVersion и buildToolsVersion.

Убедитесь, что основная версия поддерживается одинаковой.

Ответ 20

Я получал эту ошибку, когда имя проекта было очень длинным, и местоположение, в котором я сохранял проект, добавлено к нему. Перемещение проекта в другое место, чтобы имена файлов не пересекали системный предел, разрешили ошибку для меня.

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

Ответ 21

У меня также была такая проблема, оригинал - это мой компьютерный лоток этого пути:

C:\Users\'появляются специальные символы'\.android появился на китайском,

и теперь я изменил путь к:

C:\Users\hjc\.android.

Причина - проблема специальных символов. Именно по этой причине это приводит к проблеме гравия appt2Exception

Ответ 22

У меня была очень похожая проблема. Он был решен путем удаления кегля градиента (~/.gradle/caches на linux), который заставил студию Android загрузить и повторно сгенерировать все.

Ответ 23

Закрытие проекта и перезапуск студии Android исправили эту проблему для меня.

Во время перезапуска студия Android сообщила, что ей необходимо загрузить отсутствующие SDK, поэтому после того, как об этом позаботились, проблема была исправлена.

Ответ 24

Я не уверен, был ли это еще дан ответ для вас, но позвольте мне взвесить. Недавно я столкнулся с подобной проблемой, и я смог точно определить точную проблему со вкладки сборки рядом с logcat. Моя проблема была вызвана ошибкой fontfamily в XML. Я использую последнюю версию Android Studio с обновлением в марте 2018 года.

Ответ 25

Убедитесь, что вы используете допустимые типы файлов в каталоге src/main/res/raw. В моем случае я скопировал файл.mov вместе с кучей других файлов в мой каталог res/raw. Я подозреваю, что проблема заключалась в том, что aapt пытался обработать файл.mov и не знал, что с ним делать.

Ответ 26

У меня была точно такая же проблема: после обновления до Android Studio 3.1.2 мой проект не скомпилировался с ошибкой AAPT2, рассказывающей мне, что некоторые мои чертежи, на которые ссылается styles.xml не могут быть найдены. Отключение AAPT2 больше не является решением, поскольку установка устарела и будет удалена в конце 2018 года.

Culprit был пустой строкой непосредственно перед объявлением xml в полностью несвязаном файле layout.xml... Поэтому файл layout.xml начинался следующим образом:

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

Удалили пустую строку, и все снова работало как шарм. Невероятно и маловероятно, но верно.

Android Studio действительно выдала предупреждение, потому что файл не начинался с объявления xml (из-за пустой строки). Но предупреждение отображается только при открытии файла в редакторе.

Ответ 27

Это сообщение об ошибке (ошибка 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)}

Ответ 28

В моем случае реальная проблема заключалась в том, что после создания Image Asset для создания значка mipmap запуска для моего проекта, сгенерированный файл ic_launcher_foreground.xml имел ошибку внутри (был ошибочно сгенерирован). В конце файла отсутствовал закрывающий тег xml, </vector> отсутствовал.

Ответ 29

Проверьте и попробуйте ниже. Проблема должна быть решена.

  1. Прежде всего, проверьте свой журнал в нижней части окна сборки, есть ли какая-либо ошибка, связанная с отображением проекта или нет. Если ошибка показывает, то исправить все из них. Теперь построим и снова запустим исправление всей ошибки. Он устранит проблему aapt2 без изменения плагина android gradle до 3.2.0.

  2. Во-вторых, если в журнале сборки нет какой-либо ошибки, связанной с проектом, но все же показывая ошибку aapt2, вы можете исправить ее, выполнив следующие шаги.

Обновите плагин android gradle в файле build.gradle уровне проекта, как build.gradle ниже:

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

Теперь обновите android.enableAapt2=true. Затем проверьте и постройте свой проект.

Любой из этих шагов должен работать, чтобы исправить связанные проблемы.

Ответ 30

Если вы используете Kotlin, чтобы получить ошибку из-за некоторых ошибок в xml файлах. В kotlin очень сложно найти xml-ошибки, построить просто неудачу. Чтобы узнать, какой точный журнал ошибок запускается под командой в Android Studio Terminal, и легко исправить ошибки.

./gradlew clean
./gradlew assemble