Не удалось связать файловые ресурсы

Это Java файл, который дает ошибку

package com.example.daksh.timetable;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Button mon_but,tue_but,wed_but,thur_but,fri_but;
        mon_but = (Button)findViewById(R.id.mon);
        tue_but = (Button)findViewById(R.id.tue);
        wed_but = (Button)findViewById(R.id.wed);
        thur_but = (Button)findViewById(R.id.thur);
        fri_but = (Button)findViewById(R.id.fri);
        final ImageView main_Image = (ImageView) findViewById(R.id.day);
        final int[] dayarray = {R.drawable.monday,R.drawable.tuesday,R.drawable.wednesday,R.drawable.thursday, R.drawable.friday};

        mon_but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                main_Image.setImageResource(dayarray[0]);
            }

        });
        tue_but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                main_Image.setImageResource(dayarray[1]);
            }
        });
        wed_but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                main_Image.setImageResource(dayarray[2]);
            }
        });
        thur_but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                main_Image.setImageResource(dayarray[3]);
            }
        });
        fri_but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                main_Image.setImageResource(dayarray[4]);
            }
       });
   }
}

Я получаю следующие ошибки

Информация: Задачи Gradle [clean,: app: assemblyDebug] C:\Projects\TimeTable\app\src\main\res\layout\activity_main.xml Ошибка: ошибка: ресурс android: attr/colorSwitchThumbNormal является личным. Ошибка: ресурс android: attr/colorSwitchThumbNormal является частным. C:\Projects\TimeTable\app\src\main\res\layout-land\activity_main.xml Ошибка: ошибка: ресурс android: attr/colorSwitchThumbNormal является частным. Ошибка: ресурс android: attr/colorSwitchThumbNormal является частным. Ошибка: не удалось связать файловые ресурсы. Ошибка: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: ошибка AAPT2: проверьте подробности журналов. Ошибка: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: ошибка AAPT2: проверить журналы для подробностей. Ошибка: com.android.tools.aapt2.Aapt2Exception: ошибка AAPT2: проверить журналы для подробностей. Ошибка: сбой при выполнении задачи ': app: processDebugResources'. Не удалось выполнить aapt Информация: BUILD FAILED in 9s Информация: 9 ошибок Информация: 0 предупреждений Информация: полный вывод в консоли

Это файл Activity_main.xml

    <?xml version="1.0" encoding="utf-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:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/day"
        android:layout_width="0dp"
        android:layout_height="0dp"

        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="16dp"
        android:contentDescription="TODO"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/guideline_dayselection"
        app:layout_constraintHorizontal_bias="0.519"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/guideline2"
        app:layout_constraintVertical_bias="0.472"
        app:srcCompat="@drawable/monday" />

    <TextView
        android:id="@+id/textView"
        style="@style/Widget.AppCompat.TextView.SpinnerItem"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="4dp"
        android:fontFamily="serif"
        android:text="@string/message"
        android:textColor="?android:attr/colorSwitchThumbNormal"
        android:textSize="18sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/mon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="50dp"
        android:text="@string/monday"
        app:layout_constraintBottom_toTopOf="@+id/tue"
        app:layout_constraintStart_toStartOf="@+id/guideline_dayselection"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/tue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginStart="16dp"
        android:text="@string/tuesday"
        app:layout_constraintBottom_toTopOf="@+id/wed"
        app:layout_constraintStart_toStartOf="@+id/guideline_dayselection"
        app:layout_constraintTop_toBottomOf="@id/mon" />

    <Button
        android:id="@+id/wed"
        android:layout_width="88dp"
        android:layout_height="48dp"
        android:layout_marginBottom="16dp"
        android:layout_marginStart="16dp"
        android:text="@string/wednesday"
        app:layout_constraintBottom_toTopOf="@+id/thur"
        app:layout_constraintStart_toStartOf="@+id/guideline_dayselection"
        app:layout_constraintTop_toBottomOf="@id/tue" />

    <Button
        android:id="@+id/thur"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginStart="16dp"
        android:text="@string/thursday"
        app:layout_constraintBottom_toTopOf="@+id/fri"
        app:layout_constraintStart_toStartOf="@+id/guideline_dayselection"
        app:layout_constraintTop_toBottomOf="@id/wed" />

    <Button
        android:id="@+id/fri"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginStart="16dp"
        android:text="@string/friday"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="@+id/guideline_dayselection"
        app:layout_constraintTop_toBottomOf="@id/thur" />

    <android.support.constraint.Guideline
        android:id="@+id/guideline_dayselection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_end="196dp" />

    <android.support.constraint.Guideline
        android:id="@+id/guideline2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.15339233" />


</android.support.constraint.ConstraintLayout>

Ответ 1

Возможно, у вас есть эта ошибка в ваших java файлах, потому что есть один или несколько файлов XML с ошибкой.

Пройдите все ваши файлы XML и устраните ошибки, затем clean или rebuild проект из меню сборки

Начните с вашего последнего отредактированного файла XML

Ответ 2

Если у кого-то, читающего это, есть та же самая проблема, это случилось со мной недавно, и это было из-за того, что заголовок xml был написан дважды по ошибке:

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?> <!-- Remove this one -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
     <solid android:color="@color/mug_blue"/>
     <corners android:radius="@dimen/featured_radius" />
</shape>

Ошибка, которую я получил, была совершенно не связана с этим файлом, поэтому ее было сложно найти. Просто убедитесь, что во всех ваших новых XML файлах нет какой-либо ошибки, подобной этой (поскольку она не отображается как ошибка). РЕДАКТИРОВАТЬ Похоже, что это теперь отображается как ошибка, проверьте журналы ошибок.

Ответ 3

Посмотрите на ошибку, которую вы получаете:

C:\Projects\TimeTable\app\src\main\res\layout-land\activity_main.xml Ошибка: ошибка: ресурс android: attr/colorSwitchThumbNormal является закрытым.

Это означает, что в вашем файле activity_main.xml вы ссылаетесь на цвет "android: colorSwitchThumbNormal", но внутри пространства имен "android" этот ресурс является приватным. То, что вы, вероятно, хотели сделать, это попытаться ссылаться на этот цвет из версии поддержки этого атрибута, поэтому без префикса "android:".

<item name="android:colorSwitchThumbNormal">@color/myColor</item>

Заменить:

<item name="colorSwitchThumbNormal">@color/second</item>

Ответ 4

Одно из возможных решений, которое я уже упоминал в комментарии:

У меня была проблема в файле XML, которую IDE не выделил. Должен был спросить мой коллега скомпилировал для меня и это показано в его IDE. Багги андроид Студия.

Но я нашел способ обойти это.

Если вы идете на панель Gradle справа. Выберите нужный модуль, например. app, затем в разделе build выберите assemblyDebug, и вы увидите все ошибки в stdout.

enter image description here

Ответ 5

Это сообщение означает, что в вашем XML файле есть синтаксическая ошибка. Если Logcat не может точно определить ошибку с помощью понятного сообщения журнала с именем файла xml, попробуйте очистить проект и пересобрать проект. Это сработало для меня.

На вкладке Build вы получите узел с именем Android Issues.

Сообщение об ошибке, объясняющее ошибку с файлом XML, находится под ним.

Ответ 6

Чтобы получить более общий ответ от @P Fuster. В ваших xml файлах может быть ошибка.

Я столкнулся с той же ошибкой и имел ошибку в drawable, где отсутствовал конец тега.

Ответ 7

Это ошибка XML по какой-то причине, может быть из-за удаления представления или строки в другом представлении или из-за отсутствия "или/>..... и т.д.

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

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

  • Если в файле есть ошибка, вы увидите три точки красного цвета enter image description here
  • Исправьте ошибку здесь, я удалил эту строку, потому что этот массив больше не находится в строковом файле. enter image description here
  • Теперь вы можете видеть, что в этом файле больше нет ошибок, если вы все еще получили основную ошибку, поэтому вам придется повторять этот процесс снова для всех XML файлов, пока вы не исправите ошибку enter image description here

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

Обновить

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

Обновить

Я нашел очень простой способ узнать, где именно ошибка, если она есть в файле ресурсов или даже в файле java.
1- Перейти в окно проекта.
2- Откройте файл с ошибкой.
3- Нажмите F2, чтобы перейти к появлению ближайшей ошибки (она перейдет к правильной строке)

enter image description here

Ответ 8

Ошибка связана с некоторой проблемой с.xml файлом. Вручную откройте каждый файл формата xml, чтобы проверить наличие ошибки. У меня была такая же проблема. Пришлось вручную открывать каждый файл. В вызове @string произошла ошибка.

Ответ 9

У меня есть эта проблема. Основная проблема заключалась в том, что я добавил атрибут в BottomAppBar в xml файле. Я нашел сообщение об ошибке в нижней части сборки Android объяснил, что ошибка я заменил атрибут, и все было в порядке. Для тех, у кого есть такая же ошибка, но моё решение не устраивает их, вы должны прочитать сообщение об ошибке, которое приведет вас к болевой точке.

Ответ 10

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

Попробуйте очистить свой проект.... Это работает

Удачного кодирования :)

Ответ 11

Это иногда происходит, когда у вас случайный XML файл, который ничего не делает. Удаление файла решает проблему.

Ответ 12

У меня была такая же проблема. Это произошло из-за опечатки в атрибуте одного из моих XML файлов. В любом случае, Android Studio не указала источник ошибки при первом запуске. Но когда я сделал

Построить → Чистый проект

и затем снова запустил приложение, оно показало мне точную строку в коде XML, где была опечатка.

Ответ 13

Это также может произойти, если вы оставите элемент с нулевым или пустым атрибутом в файле макета XML, в противном случае, если в вашем файле Java указан путь создания объектов, такой как указание неправильного идентификатора для объекта

enter image description here

здесь frombottom= AnimationUtils.loadAnimation(this,R.anim); в котором аним. идентификатор или имя файла, оставленное пустым, может привести к такой проблеме.

Ответ 14

Эта похожая ошибка может также отображаться, если вы ранее удалили Java файл Activity и не удалили соответствующий XML файл макета.

Удалите XML файл для удаленного Java файла Activity и очистите или перестройте проект.

Причина этого может быть из-за несоответствия контекста в XML. (Это может произойти, если вы копируете код макета XML). Сопоставьте инструменты: контекст с java файлом действия.

image

Ответ 15

Я работал над приложением Temperatur Converter. Я столкнулся с той же ошибкой при запуске приложения, что и: не удалось установить соединение с Android Studio. В String.xml пропущена строка, я включил строку. Все прошло без ошибок.

До исправления

<resources>
<color name="myColor">#FFE4E1</color>
<string name="Celsius">To Celsius</string>
<string name="fahrenheit">To Fahrenheit</string>
<string name="calc">Calculate</string>
</resources>

После редактирования:

<resources>
<string name="app_name">Temp Converter</string>
<color name="myColor">#FFE4E1</color>
<string name="Celsius">To Celsius</string>
<string name="fahrenheit">To Fahrenheit</string>
<string name="calc">Calculate</string>
</resources>

Ответ 16

Иногда случается, что вы копируете код вставки из другого проекта, например, копируете

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="256dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/white"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:itemTextColor="@color/colorDrawerItems"
        app:menu="@menu/activity_main_drawer" />

К сожалению, Android-студия не всегда показывает ошибку зависимости, но происходит то, что класс NavigationView отсутствует, потому что implementation 'com.android.support:design не добавлена в проект

Ответ 17

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

Я удалил <?xml version="1.0" encoding="utf-8"?> Из верхней части этих двух файлов ресурсов XML.

Это сработало для меня, после попытки многих решений от сообщества. Ответ @P Fuster заставил меня попробовать это.

Ответ 18

-May может быть проблема в том, что вы удалили файлы .java, поскольку это не удаляет файлы .XML, поэтому перейдите к макету res-> и удалите файлы .XML, которые вы удалили ранее. -the другая проблема может заключаться в том, что вы не удалили файлы, присутствующие в манифестах, по синтаксису, который вы недавно удалили... Поэтому удалите и запустите код

Ответ 19

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

Эта ошибка иногда также возникает как "Не удалось связать ресурс Android". Это иногда неопределенно. Решение иногда может быть довольно скучным и мучительным, но в этой ошибке нет ничего серьезного.

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

Общая причина Ошибка появляется, когда Gradle обнаруживает ошибку (обычно синтаксическая или опечатка) в одном или нескольких файлах XML.

Большинство XML файлов находятся в папке res, однако, вы все равно можете найти их вне папки res. Например, файл AndroidManifest.xml находится в /src/main/AndroidManifest.xml. Вот пример файла макета, который выдает ошибку "Ошибка: не удалось связать ресурсы файла".

Решение Чтобы решить эту проблему, все, что вам нужно сделать, - это просмотреть каждый из ваших XML файлов, чтобы выяснить, где может быть ошибка. Иногда это может занять много времени, но будьте уверены, что ошибка исчезнет, как только вы найдете и исправите проблему XML.

Возможно, вам повезет, и Android Studio укажет вам точное направление точно так же, как вопрос, заданный в вопросе......

В других случаях, например, при использовании более старой версии Android Studio, ошибка не будет такой конкретной.

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

Отменить: В большинстве случаев вы уже прошли половину проекта, прежде чем столкнулись с этой проблемой. Это означает, что причиной недавней проблемы стало недавнее изменение одного из ваших XML файлов. Если это так, вы можете попытаться отменить последние изменения в файлах XML. Чтобы отменить, просто используйте комбинацию клавиш: Ctrl + Z.

Откройте каждый файл XML: Второй метод заключается в простом открытии каждого файла XML в вашем проекте (без сканирования). Причина этого в том, что иногда после открытия проблемного XML файла Android Studio обнаруживает ошибку и подчеркивает точную строку.

Ответ 20

Ошибка, скорее всего, находится в ваших xml файлах, однако даже после индивидуального поиска каждого файла я не смог его найти.

Проблема:

Android Studio запустит анализ и поставит зеленую галочку, если макет выглядит правильно, как показано ниже (зеленая галочка в правом верхнем углу)

enter image description here

Предпочтительное решение:

Однако при дальнейшей проверке окна предварительного просмотра xml появился красный значок предупреждения, который указывал на искомую ошибку:

enter image description here