Ошибка - сбой при связывании ресурсов Android (AAPT2 27.0.3 Daemon # 0)

95

У меня эта ошибка

Я пытаюсь переустановить студию Android и удалить папку .gradle, пожалуйста, какое-нибудь решение?

    Error:FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed (AAPT2 27.0.3 Daemon #0)
  Command: C:\javasdk\build-tools\27.0.3\aapt2.exe link -I\
          C:\javasdk\platforms\android-26\android.jar\
          --manifest\



  C:\Users\Jalal D\.gradle\caches\transforms-1\files-1.1\fonticon-0.1.8.aar\2b09376fc14469ba65fc8e4d85c2eed1\res\values\values.xml:19:5-25:25: AAPT: error: resource android:attr/fontVariationSettings not found.

  C:\Users\Jalal D\.gradle\caches\transforms-1\files-1.1\fonticon-0.1.8.aar\2b09376fc14469ba65fc8e4d85c2eed1\res\values\values.xml:19:5-25:25: AAPT: error: resource android:attr/ttcIndex not found.

  error: failed linking references.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 3s
Махмуд Д. Альгрейбех
источник

Ответы:

50

Была точно такая же проблема. Решил это, выполнив следующие действия: Поиск и замена com.android.support:support-v4:+ на com.android.support:support-v4:27.1.0 в каталоге platform / android.

Также мне пришлось добавить следующий код в файлы platform / android / app / build.gradle и platform / android / build.gradle:

configurations.all {
resolutionStrategy {
    force 'com.android.support:support-v4:27.1.0'
}}

Отредактировано для ответа "Где эта настройка com.android.support:support-v4:+?" ...

Настройка, вероятно, будет (в этом случае) находиться в одном из файлов вашего плагина .gradle в каталоге platform / android /, например, в моем случае это был плагин starter-barcodescanner, поэтому просто просмотрите все ваши файлы плагинов .gradle:

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

Дважды проверьте файл platform / android / build.gradle.

Надеюсь это поможет.

RFourie
источник
Спасибо, что спасли нас!
Рамеш Муругесан 09
Спасибо, что спасли мой день !! У меня были дни с этой проблемой, которая возникала у меня ночью, не зная, как мое приложение перестало работать
LMoreno10,
Не могу поверить, что решение было таким простым, все, что потребовалось, это скопировать и вставить эти два файла gradle! Хлопает !!
Shyam
Обнаружена одна из причин этой проблемы. Когда мы используем в манифесте любую строку, стиль, цвет и т. Д., Которые не представлены в значениях (string.xml, style.xml, color.xml и т. Д.), То этот тип ошибки occer's .
Вишну Магар
Это исправление также работает при обновлении зависимостей в студии Android. Сама IDE укажет в файлах, что эти версии должны соответствовать скомпилированному
SDK
91

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

<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>

Я удалил повторяющуюся строку и ошибка исчезла. Ошибка немного вводила в заблуждение:

Ошибка при связывании ресурсов Android Результат: / Users / johndoe / Desktop / myapp / app / src / main / res / layout / activity_main .xml: 2: error: resource drawable / bg_main (aka com.example.myproject: drawable / bg_main) not найденный.

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

Даруш
источник
4
Этот. Это решило мою проблему. Очень досадно, что IDE не сообщила об этой ошибке, а ошибка связывания говорит о другом.
ocramot
4
Матерь Божья !
Mihir Patel
1
на самом деле мой был: <?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="UTF-8"?> (в той же строке: P труднее обнаружить)
Алан Дип
1
Моя заключалась в том, что я использовал ресурс в Manifest, пока он уже удален <meta-data android:name="com.google.android.actions" android:resource="@xml/my_event_session_menu" />
Gpak
2
+1 за то, что сэкономил мне время. Что больше всего раздражает, так это то, что Android Studio указала не на тот файл, из-за чего я почесал в затылке, поскольку файл, на который он не мог ссылаться, был в порядке.
Machine Tribe
46

Примечание: Android Studio выдает массу сумасшедших ошибок, подобных этой, если вы обновляете библиотеки поддержки до, 28.0.0а вам compileSdkVersionтоже не 28.

Дэниел Уилсон
источник
14
У меня уже были оба, compileSdkVersion 28и support-v4:28.0.0я получаю ту же ошибку :(
ocramot
1
@ocramot Я исправил проблему, понизив compileSdkVersion до 27
suvojit_007 01
1
+1. В моем проекте два модуля, и у меня были разные версии (один был 29, а другой - 27). Когда я установил их на 29, ошибка исчезла
voghDev
Благодарность! В моем случае мне пришлось установить minSdkVersion в то же самое, что и compileSdkVersion. В противном случае будет запущена только первая сборка, а все последующие повторные запуски завершатся с ошибкой, аналогичной ошибке OP
Джим Б.
7

Если вы используете Windows 10 и Android Studio 3.2, вы можете просто перейти к build.gradle приложения и изменить версию.

В разделе зависимости измените версию и выполните сборку / синхронизацию.

Сайед Раза
источник
Это модуль Gradle. Щелкните ссылку выше, чтобы увидеть снимок экрана.
Сайед Раза
3
Требуется ли Windows 10?
Игорь Ганапольский
7

Проблема исправлена ​​для меня заменой compileSdkVersion 23на compileSdkVersion 28in build.gradle (Project: build).

Хайме Монтойя
источник
У меня сработало, спасибо! У меня все еще естьminSdkVersion 23
Стивен Хоскинг
@StephenHosking У вас сработало без обновления compileSdkVersionс 23на 28? В таком случае, с какой проблемой вы столкнулись изначально?
Хайме Монтойя,
Я должен был быть более ясным. Ваше решение, т.е. заменить compileSdkVersion 23на compileSdkVersion 28сработало для меня, но я только что упомянул, что смог оставить minSdkVersion 23, в качестве дополнительной информации о правильном решении. Моя первоначальная проблема была «Ошибка - сбой при связывании ресурсов Android»
Стивен Хоскинг,
@StephenHosking Ницца. Хорошо, что это работает для вас сейчас.
Хайме Монтойя,
4

Я импортировал новые цвета в свой проект и столкнулся с той же проблемой. Поэтому я открыл styles.xmlэлементы и переназначил их цветам, используя новые названия цветов.

Александр
источник
4

Я решил это, добавив @+id/ перед всеми своими идентификаторами.

т.е. @+id/your_item_id

Саджид2405
источник
Это не дает правильного ответа на вопрос. дайте правильный ответ, и как вы это сделали и в чем проблема ?. \
Йохан Мальшика 01
4

чувствую себя таким глупым - (по какой-то причине) у меня был один пустой xml в папке с возможностью переноса. и AS выдал десятки несвязанных ошибок> <

Итак, мой общий совет будет таким же - кратко проверьте каждый файл ресурсов.

Mjollneer
источник
3

com.android.support:support-v4 недавно получил обновление и может повлиять на плагин, который использует обновленную версию в своих зависимостях. Но если вы не можете найти в зависимостях (например, если вы используете плагин crosswalk), просто поместите этот код в верхнюю часть вашего плагина code gradle (нет необходимости добавлять в build.gradle).

configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:24.0.0'
}

Пример места для вставки кода в плагин пешеходного перехода здесь

Не стесняйтесь редактировать версию com.android.support (НЕ ИСПОЛЬЗУЙТЕ 28.0.0), потому что это проблема

Ахмад Азам
источник
2
Большое спасибо. Я использую, 27.1.0как упоминалось в @RFourie.
Рамеш Муругесан 09
2

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

Разз
источник
2

У этой проблемы может быть несколько причин, и эти причины в основном находятся в файле build.gradle на уровне ресурса или приложения.

В моем случае представление в файле ресурсов не имело необходимой зависимости, включенной в файл build.gradle.

Поэтому обязательно включите все необходимые зависимости в файл build.gradle.

Н. Фатьма
источник
2

Проверьте версию вашего плагина Gradle . Попробуйте понизить его, если вы обновились до более новой версии незадолго до появления этой проблемы. Перейдите в Файл -> Структура проекта . Перейти на предыдущую версию.

JeffinJ
источник
1

Попробуйте обновить последнюю версию сборки, целевую и скомпилированную версии, а также обновить зависимости, но у меня это не работает

В моем случае изменение <meta-items/>на <meta-data/>манифест работает для меня ...

Надеюсь, это поможет кому-то ...

Локеш
источник
1

У меня была такая же проблема, но это было потому, что в моих кнопках layout_width / height я забыл поставить dp в конце при их редактировании. Добавлен дп и исправлена ​​проблема: /

DontJudgeMe
источник
1

В моем случае я случайно написал:

app:displayViewTitle="@string/instructions_defineExtract_confirm_email"

Интересно, что Android Studio смогла перемещаться по строке с помощью CTRL + щелчок. Это просто выдавало ошибку времени сборки. Переход на стандартное разделение точек помогло

app:displayViewTitle="@string/instructions.defineExtract.confirm.email"
Онат Коруджу
источник
1

Обнаружена одна из причин, вызывающих эту проблему

Когда мы пытаемся использовать любой

строка, стиль, цвет и т. д.,

в файле манифеста, которого нет в значениях, (string.xml,style.xml,color.xml,etc,)возникает ошибка этого типа

Вишну Магар
источник
1

У меня такая же ошибка, и я исправил ее, когда закрыл AndroidStudio и удалил каталог, как C:\Users\Jalal D\.gradle\caches\transforms-1\в информации об ошибке сборки.

103 стиль
источник
1

У меня была такая же проблема, и я решил ее, перейдя в Файл -> Структура проекта ... -> Предложения, а затем Применить все. Как было предложено @JeffinJ, я думаю, проблема была в обновлении плагина Gradle.

cie
источник
0

У меня была аналогичная проблема, но я вышел из решения, проблема заключалась в том, что вы использовали любую вещь в зависимости, которая соответствует одному домену, но с разными версиями, убедитесь, что все они одинаковы

Шубхам Кумар Гупта Ggps
источник
Прошлой ночью я установил Android Studio 3.3.2. Я полный новичок. Я создал приложение "Flutter" и попытался запустить его. Я получаю следующий вывод и сообщение об
Эллиот,
0

Я столкнулся с той же проблемой, и она решается путем удаления ошибки из файлов ресурсов, таких как файлы стиля и цветов, в папке значений. В моем случае ошибка в цветах стиля, как показано ниже:

 <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">**@color/colorPrimary**</item>
    <item name="android:textColorSecondary">**@color/colorPrimaryDark**</item>
</style>
Рави
источник
0

При смене версии библиотеки поддержки последней включенной (28.0.0) на предыдущую (27.1.0) ошибка Android Resource Linking Failedисчезла.

Следует отметить, что версия 27.1.0 является максимально допустимой в наших реализациях, что работает, но вы можете использовать более старую версию, если хотите. И это нужно использовать во всех зависимостях, которые начинаются со строкиcom.android.support:

проект / приложение / build.gradle

implementation "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:support-v4:$rootProject.supportLibraryVersion"

проект / build.gradle

ext {
    supportLibraryVersion= '27.1.0'
}

Затем синхронизируйте проект с файлами Gradle

GL

Брайан Коронел
источник
0

У меня возникла такая же проблема, но до появления этой ошибки мое приложение работало. Так что я просто отменил 2/3 раза. И снова сделал изменения. И сборка app.app прошла успешно.

Упертый
источник
0

Я столкнулся с той же проблемой после добавления следующей зависимости:

implementation 'com.evernote:android-state:1.4.1'
annotationProcessor 'com.evernote:android-state-processor:1.4.1'

Причина в том, что последняя версия evernote использует зависимости от AndroidX, тогда как в моем проекте была библиотека поддержки версии 27.1.1. Таким образом, была возможность обновить библиотеки поддержки до 28.0.0, как предлагают другие ответы, но это было немного сложно для большого проекта с множеством настраиваемых представлений. Итак, я решил проблему, понизив версию evernote до 1.3.1.

анро
источник
0

Как бы банально это ни звучало, но я Build > Clean Projectисправил эту ошибку без каких-либо других изменений.

mihai1990
источник
0

Для меня ошибка появилась после изменения значка запуска с помощью Asset Studio. Оказалось, что в ic_launcher_foreground.xmlсгенерированном файле отсутствовала следующая строка в верхней части файла: <?xml version="1.0" encoding="utf-8"?>

Дроид
источник
Мой был похож. Я добавил новый вариант сборки и обнаружил две из этих ошибок. Первая не имела смысла, но я покопался во второй ошибке и обнаружил, что в этой сборке отсутствует ic_launcher.png
ja928
0

Я использую Studio 3.3.1 Build с 28 января.

Для меня я получал сообщение «Ошибка при связывании ресурсов Android», указывающее на строку в файле макета с использованием ConstraintLayout, который работал правильно до сегодняшнего дня, когда единственное изменение в моем файле gradle уровня приложения заключалось в обновлении версий:

android.arch.navigation:navigation-fragment
android.arch.navigation:navigation-ui

от 1.0.0-rc01до 1.0.0-rc02.

В сообщении об ошибке говорилось о непризнании, layout_constraintTop_toTopOfчто, конечно, глупо, потому что оно успешно компилировалось в течение нескольких месяцев.

У меня уже есть 28.0.3 инструментов сборки и compileSdkVersion28. Я использую androidx.appcompatвезде уже какое-то время (преобразовал этот проект несколько месяцев назад в androidx).

Сначала я прошел очистку проекта (без помощи) и отключил кеш / перезапуск (без помощи). Рассматриваемый макет был первоначально определен с использованием

<TextView>, <EditText>и <ImageView>компоненты (которые до сегодняшнего дня работали нормально).

Но после прочтения приведенных выше ответов я подумал, что, может быть, здесь возникла путаница, поэтому я изменил макет, чтобы использовать:

<androidx.appcompat.widget

версии всех различных компонентов. Без изменений - все равно ошибка.

Затем я удалил <androidx.appcompat.widget.AppCompatTextViewблок, который вызывал ошибку компиляции. Я изменил все ссылки на него в других виджетах, чтобы вместо этого ссылаться на «родительский». Сделал марку. На этот раз компиляция завершилась без ошибок .

Я подумал, что что-то странное в этом определении виджета ... вот что это было:

<androidx.appcompat.widget.AppCompatTextView
    android:id="@+id/contact_firstname_label"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="@string/contact_fname_label"
    android:gravity="end"
    android:textAppearance="@android:style/TextAppearance.Material.Small"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@+id/contact_detail_fname"
    app:layout_constraintBaseline_toBaselineOf="@+id/contact_detail_fname"/>

Затем я вставил обратно блок, который у меня был ранее вырезан с помощью Ctrl-V, и изменил ссылки обратно на этот идентификатор в других компонентах, которые ссылаются на него в макете. Сбой компиляции .

Я снова вырезал блок и вставил его в WordPad. Затем, прочитав вставку WordPad, я на самом деле набрал ее обратно (т.е. на этот раз я не копировал / вставлял) - строка за строкой, выполняя make в проекте после того, как я ввел минимальное определение, а затем снова после того, как вставляйте каждую новую строку. Каждый раз проект компилировался чисто!

Я не знаю, что с этим делать. Возможно, изначально в файле был какой-то ложный невидимый символ?

tfrysinger
источник
0

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

<!-- applied to TextViews -->
<style name="rowStyle"> 
    <item name="android:padding">3dp</item>
    <item name="android:borderlessButtonStyle">false</item> <!-- this caused the error -->
    <item name="android:background">@drawable/textview_border</item>
</style>

Удаление строки с android:borderlessButtonStyleустранением проблемы.

Embid123
источник
0
  • Щелкните правой кнопкой мыши папку с возможностью переноса и выберите «Показать в проводнике» .
  • Найдите файл с ошибкой в ​​открытой файловой системе, выберите их (или выберите файлы во всем файле drawable), затем скопируйте их в файл drawable-v24 (не удаляйте файл drawable и не создавайте его, если файла drawable-v24 нет. ).
  • Затем выберите File -> Invalidate Caches / Restart и
  • перезапустите Android Studio.
Görkem KARA
источник
Пункты 1 и 2 работают для меня. Но теперь мне нужно разместить файлы с ошибками в двух местах: одно в drawable, а другое в drawable-v24.
Аман Гоял
0

Если вы столкнетесь с этим: в моем случае у меня была переведенная строка, но она еще не появилась в файле strings.xml по умолчанию. Добавил недостающую строку в strings.xml, и она была решена.

ea_
источник
0

В моем случае ошибка указала на файл AndroidManifest.xml. У меня была такая строка:

<meta-data
            android:name="com.google.android.actions"
            android:resource="@xml/popup_info.xml" />

Который, я не уверен, почему Android Studio поместила это туда. Я не менял свой файл манифеста, и этого не происходило до тех пор, пока я не обновился до версии 3.5.3, поэтому AS, должно быть, сделал это за меня. Во всяком случае, строка должна была выглядеть так:

<meta-data
            android:name="com.google.android.actions"
            android:resource="@layout/popup" />

Как только я это изменил, все стало хорошо.

Уилл Баффингтон
источник