Помилка - не вдалося зв’язати ресурси Android (AAPT2 27.0.3 Daemon # 0)


94

У мене ця помилка

Я намагаюся перевстановити android studio та видалити папку .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 у каталозі платформи / 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-barcodecanner, тому просто перегляньте всі ваші плагіни .gradle:

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

Перевірте файл platform / android / build.gradle.

Сподіваюся, це допомагає.


Дякуємо, що врятували нас!
Рамеш Муругесан,

Дякую, ви рятуєте мій день! У мене були дні з цією проблемою, яка з’явилася у мене з ночі, не знаючи, як моя програма перестала працювати
LMoreno10,

Не можу повірити, що рішення було настільки простим, для цього потрібно було скопіювати копію до цих двох файлів gradle! Хлопаки !!
Shyam,

Знайдено одну з причин цієї проблеми Коли ми використовуємо будь-який рядок, стиль, колір тощо у маніфесті, якого немає у значеннях (string.xml, style.xml, color.xml тощо), тоді виникає помилка цього типу .
Вішну Магар

Це виправлення також працює, коли залежності оновлюються в Android Studio. IDE сама вкаже у файлах, що ці версії повинні відповідати складеному
SDK

91

Android ресурс посилання не вдалося помилка може також з'являтися , якщо є помилка в будь-якому з ваших XML - ресурсів. У моєму випадку я використовував такий рядок двічі в одному зі своїх XML-малюнків у папці drawable:

<?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: помилка: ресурс drawable / bg_main (він же com.example.myproject: drawable / bg_main) не знайдено.

У відповідності з вказаними вище помилками, перше , що вам потрібно зробити , це доказ читати все Drawable ресурсів, доступ до яких в activity_main , тому що шанси вище , що ви знайдете помилку. У гіршому випадку ви можете закінчити перевірку всіх файлів ресурсів.


4
Це. Це вирішило мою проблему. Дуже дратує те, що IDE не сигналізувала про цю помилку, а помилка зв’язування говорила про щось інше повністю.
окрамот

4
матір Божа !
Міхір Патель

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

1
+1. Мій проект має два модулі, і я мав різні версії (одному було 29, а іншому 27). Коли я встановив для них значення 29, помилка зникла
voghDev

Дякую! У моєму випадку мені довелося встановити для 'minSdkVersion' те саме, що і 'compileSdkVersion'. В іншому випадку запускатиметься лише перша збірка, а всі наступні повторні прогони зазнають невдачі з подібною помилкою, як OP
Jim B


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


Це не дає правильної відповіді на питання. надати правильну відповідь та як це зробили і в чому проблема ?. \
Йохан Мальшіка

4

почуваюся настільки дурним - (з якоїсь причини) у мене був один порожній xml в папці, що можна малювати. і AS призвели до десятків не пов'язаних між собою помилок> <

отже, моя загальна порада була б однаковою - коротко перевірте кожен файл ресурсу.


3

com.android.support:support-v4 нещодавно отримав оновлення і, можливо, вплине на плагін, який використовує оновлену версію у своїх залежностях. Але якщо ви не можете знайти в залежностях (наприклад, якщо ви використовуєте плагін crosswalk), просто поставте цей код зверху свого плагіна коду 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 згаданий.
Рамеш Муругесан,

2

У файлах ресурсів має бути помилка. Це означає, що може бути пропущене набране значення атрибутів. Перегляньте файли ресурсів, виправте ці значення та насолоджуйтесь роботою.


2

Причин цієї проблеми може бути декілька, і вони в основному містяться у файлі build.gradle на рівні ресурсу або програми.

У моєму випадку у поданні у файлі ресурсів необхідна залежність не була включена у файл build.gradle.

Отже, обов’язково включіть усі необхідні залежності у файл build.gradle.


2

Перевірте версію плагіна Gradle . Спробуйте знизити його, якщо ви оновили її до нової версії безпосередньо до появи цієї проблеми. Перейдіть до Файл -> Структура проекту . Перехід на попередню версію.


1

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

У моєму випадку перейдіть <meta-items/>на <meta-data/>маніфест, який працює для мене ...

Сподіваюся, це корисно для когось ...


1

У мене була та ж проблема, але це було тому, що в моїх кнопках layout_width / height я забув поставити dp в кінці під час їх редагування. Додано dp та вирішено проблему: /


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\в інформації про помилку збірки.


1

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


0

У мене була подібна проблема, але я вирішив, що проблема полягає в тому, що ви використовуєте будь-яку річ із залежності, яка відповідає одному домену, але з різними версіями переконайтеся, що всі вони однакові


Вчора ввечері я встановив 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:

project / app / build.gradle

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

project / 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ця помилка виправлена ​​без будь-яких інших змін.


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 з інструментів побудови та compileSdkVersionна 28. Я використовую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, я фактично набрав його назад (тобто цього разу не копіював / вставляв) - рядок за рядком, роблячи проект на проекті після того, як я набрав мінімальне визначення, а потім знову, коли я поставити в кожному новому рядку. Кожного разу проект складався чисто!

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


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усуненою проблемою.


0
  • Клацніть правою кнопкою миші на папці, що малюється, і виберіть "Показати в Провіднику" .
  • Знайдіть невдалий файл у відкритій файловій системі, виділіть їх (або виберіть файли у цілому, що малюється), а потім скопіюйте їх у файл drawable-v24 (не видаляйте файл, який можна малювати, і створіть його, якщо немає файлу drawable-v24 ).
  • Потім виберіть Файл -> Недійсні кеші / Перезапустити та
  • перезапустити Android Studio.

Пункт 1 і 2 працює для мене. Але зараз мені потрібно розмістити невдалі файли в двох місцях, одне в drawable, а інше в drawable-v24.
Аман Гоял

0

Якщо ви натрапите на це: у моєму випадку у мене був перекладений рядок, але рядок ще не відображався у за замовчуванням strings.xml. Додав відсутній рядок до strings.xml, і він вирішився.


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

Як тільки я змінив це, все було добре.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.