Failed linking file resources
Asked Answered
P

26

73

This is the java file that is giving the error

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]);
            }
       });
   }
}

The errors that I am getting are as follows

Information:Gradle tasks [clean, :app:assembleDebug] C:\Projects\TimeTable\app\src\main\res\layout\activity_main.xml Error:error: resource android:attr/colorSwitchThumbNormal is private. Error:resource android:attr/colorSwitchThumbNormal is private. C:\Projects\TimeTable\app\src\main\res\layout-land\activity_main.xml Error:error: resource android:attr/colorSwitchThumbNormal is private. Error:resource android:attr/colorSwitchThumbNormal is private. 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 9s Information:9 errors Information:0 warnings Information:See complete output in console

This is the Activity_main.xml file

    <?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>
Pelagias answered 31/1, 2018 at 19:2 Comment(0)
L
130

You maybe having this error on your java files because there is one or more XML file with error.

Go through all your XML files and resolve errors, then clean or rebuild project from build menu

Start with your most recent edited XML file

Louise answered 12/10, 2018 at 10:31 Comment(10)
Yes, Sometime issue was resolved with clean or rebuild the project. but its not work every time should check it recently added file. Happy Learning..Leclaire
I had an issue in XML file that IDE did not highlight. Had to ask my colleague to compile for me and it shown in his IDE. Buggy Android Studio.Hickerson
It's better to avoid modifying lots of xml files without a building or running. as when you run your project and have this error after modifying lots xml files, you will hard to figure out which one goes wrong.Crowd
in most of the cases this error occurs due to drawable/ xml filesTeutonize
Simply use CTRL + Z to do what you did on XML pages to track/detect what caused this error.Merat
typos might also be the cause, i.e. layout_constraintEnd_toEndtOf instead layout_constraintEnd_toEndOfForficate
Tracing the error message I found the error in one of my XML files. I wonder why XML file related errors are so vague.Flywheel
So how to know which one? I have a project with hundreds of XML filesCasabonne
@Casabonne start with your most resent edit XML files. And try to use git for your projects if you are not using already, it will help with historyLouise
Yes I ended up opening all files one by one until I found the one with the errorCasabonne
B
37

If anyone reading this has the same problem, this happened to me recently, and it was due to having the xml header written twice by mistake:

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

The error I was getting was completely unrelated to this file so it was a tough one to find. Just make sure all your new xml files don't have some kind of mistake like this (as it doesn't show up as an error). EDIT It seems like it shows up as an error now, make sure to check your error logs.

Blight answered 2/8, 2018 at 16:25 Comment(3)
Thanks ,i have issue with recent created file .Leclaire
fix is here ..!Diabolism
I had the same error by not having the XML header. Your comment lead me to the problem.Decencies
H
35

One possible solution I already mentioned in a comment:

I had an issue in XML file that IDE did not highlight. Had to ask my colleague to compile for me and it shown in his IDE. Buggy Android Studio.

But I found a way around that.

If you go to Gradle panel on the right. Select your desired module, eg. app, then under build select assembleDebug it will show you all errors in stdout.

enter image description here

Hickerson answered 15/3, 2019 at 10:50 Comment(8)
Kudos, Great way to find the issue!Aculeate
It's super helpful. Thanks!Spaak
great comment, super helpful I was able to find the issue right away when I did this...turned out I had an incorrectly names constraint in my xmlRenown
This is the real answer. The only way right now to find your AAPT2 issues and save timeSclerodermatous
Thanks a bunch...was going mad from yesterday solving this issueInvasion
This is definitely the best way to deal with AAPT issues.Cindiecindra
we've been waiting so long for this.all heil to our saviour.Caret
Very nice and useful info. It's working like a charm. :)Nor
F
13

Look at the error you are getting:

C:\Projects\TimeTable\app\src\main\res\layout-land\activity_main.xml Error:error: resource android:attr/colorSwitchThumbNormal is private.

It means that in your activity_main.xml you are referencing the color "android:colorSwitchThumbNormal", but inside the 'android' namespace that resource is private. What you probably meant to do is try to reference that color from the support version of this attribute, so without the "android:" prefix.

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

Replace with:

<item name="colorSwitchThumbNormal">@color/second</item>
Fadge answered 5/2, 2018 at 11:36 Comment(6)
I understood the error after reading your answer but still was not able to solve the error.....I have added the android_main.Xml file .....I hope you can take a look at it.Pelagias
"?android:attr/colorSwitchThumbNormal" -> "?attr/colorSwitchThumbNormal". Don't use the "android" namespace.Fadge
Im getting the same error, Trying to update the build tools with no success, removed all the @android resources references too, but no changes at all, the same errorTerret
@Terret Are you sure you're modifying your resources not the intermediate files in the build/intermediates directory?Fadge
I solved, for now, all the linking resource error, the project runs and build, but I'm getting this very annoying lint alert Error: All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.1, 27.1.0. Examples include com.android.support:animated-vector-drawable:27.1.1 and com.android.support:design:27.1.0 Terret
I just downgraded the support version and the error stopped buts it’s strange how dependencies of dependencies have different versionsTerret
C
8

Run ./gradlew build -stacktrace in Android Studio terminal. It helps you to find a file that causes this error.

Clermontferrand answered 23/3, 2020 at 16:36 Comment(0)
A
5

It's Obvious that if you have a big project, it will be a nightmare to check each and every xml file.

Run the following command in android studio terminal and it will give you the filename with the issue

gradlew build --stacktrace

enter image description here

Ambassadoratlarge answered 18/4, 2020 at 20:11 Comment(0)
L
3

This message means there is a syntax error in your XML file. If Logcat cannot pinpoint the error with a friendly log message with the xml file name, try cleaning the project and rebuilding the project. It worked for me.

In the Build tab, you will get a node named Android Issues.

The error message explaining the error with the XML file is under it.

Levana answered 9/6, 2018 at 23:26 Comment(0)
R
2

To be more generic about the answer provided by @P Fuster. There can be error in your xml files.

I encountered the same error and was having error in the drawable where end tag was missing.

Repulsive answered 5/10, 2018 at 13:27 Comment(0)
M
2

Error is associated with some issue with .xml file. Manually open each xml format file to check for error. I had same issue. Had to manually open each file. There was an error in @string call.

Mihe answered 3/12, 2018 at 0:35 Comment(0)
S
2

It is a xml error for some reason may be because of deleting a view or string in another view or may be for missing " or /> ..... etc

But here I am using a good technique to figure out where is the problem exactly :-

  • Go to every single xml file and minimize the root element if you find something like this so you got where is the error, fix it then repeat the process for all files.

  • If the file has an error you will see three dots with red color enter image description here
  • Fix the error here I removed this line because this array is not in the string file any more. enter image description here
  • Now you can see there is no error in this file any more if you still got the main error so you have to repeat this process again to all xml files until you solve the error enter image description here

I know it is not the solution of the main problem but it will make you find where is the error quickly and save you time.

Update

There is another way you can find out easily, as Bennik2000 write in comment, you can look at the right scrollbar for red lines, they also indicate errors.

Update

I found a very simple way to get where is the error exactly if it is in resource file or even java file.
1- Go to Project Window.
2- Open the file that has the error.
3- Click F2 to go to the nearest error appears (it will go to the correct line)

enter image description here

Simile answered 6/12, 2018 at 9:38 Comment(1)
Also you can look at the right scrollbar for red lines, they also indicate errorsNaashom
C
2

Check your XML files for resolving the Errors.Most of the time the changes made to your XMLfiles get Affected.so try to check the last changes you made.

Try to Clean your Project....It Works

Happy Coding:)

Conquer answered 19/2, 2019 at 9:25 Comment(1)
This could be also comment and not an answer. Please read the rules.Vinita
H
2

I know this question has been answered already, however, I still would like to add to what a lot has posted here for others having a similar but not specific problem.

This error sometimes also comes as “Android resource linking failed”. It is sometimes vague. The solution sometimes could be quite boring and painful but, this error is absolutely nothing serious.

In this case, the error is not Vague because Android Studio pointed to the problem file.

General Cause The error shows up when Gradle encounters an error (Usually a syntax or typo error) in one or more of your XML files.

Most of the XML files are located in the res folder, however, you might still find some outside the res folder. For example, the AndroidManifest.xml located in “/src/main/AndroidManifest.xml”. Here is an example of a layout file that would give the “Error: failed linking file resources” error.

Solution To solve this problem, all you have to do is go through each of your XML files to figure out where the error might be. This could sometimes be time-consuming but be rest assured that the error will disappear as soon as you find and fix the problem XML.

You might be lucky and Android Studio will point you in the exact direction just like the one asked in the question......

Other times like when you are using an older version of Android Studio, the error would not be this specific.

Here are some Tips to finding the problem XML quickly If you have a lot of XML files and it would be just too difficult to go through them one after the other, you could use the following tips to make the process easier:

Undo: Most times, you are already halfway through a project before you experience this issue. Meaning that it was a recent change to one of your XML files that caused the issue. If that is the case, you can try to undo your recent change to the XML files. To undo, simply use the key combination: Ctrl+Z.

Open every XML file: The second method involves simply opening every single XML file in your project (Without scanning). The reason for this is that sometimes, after opening the problem XML file, Android Studio then detects the error and underlines the exact line.

Hydrofoil answered 21/4, 2019 at 15:3 Comment(0)
A
2

I was having the same issue. It was due to a typo in an attribute in one of my XML file. Anyways, Android Studio did not specify the source of the error in the first run. But when I did a

Build -> Clean Project

and then ran the app again it showed me the exact line in the XML code where the typo was.

Afteryears answered 18/5, 2019 at 10:10 Comment(1)
There is only Make Project on me, I simply CTRL + Z to track what caused that mistake.Merat
M
1

I have this problem.The main problem was i added an attribute to an BottomAppBar in the xml file.I found error message in android bottom build section explained that error i replaced the attribute and every thing was ok. For others who have the same error but my solution not ok with them you have to read the error message it will guide you to the pain point.

Millibar answered 13/1, 2019 at 12:20 Comment(0)
F
1

In my case, I made a custom background which was not recognised.

I removed the <?xml version="1.0" encoding="utf-8"?> tag from the top of those two XML resources file.

This worked for me, after trying many solutions from the community. @P Fuster's answer made me try this.

Fadil answered 14/3, 2019 at 7:20 Comment(0)
M
1

This might be useful for someone who is looking for a different answer. Go to the Gradle Panel and select your module -> Task -> Verification -> Check.

This will check the project for errors and will print the log where the error occurs. Most of the time this Kind of error must be a typo present in your XML file of your project

Morion answered 26/5, 2020 at 14:2 Comment(0)
B
0

It can also occur if you leave an element with a null or empty attribute in your XML layout file else if your java file's path of objects creation such as specifying improper ID for the object

enter image description here

here frombottom= AnimationUtils.loadAnimation(this,R.anim); in which anim. the id or filename is left blank can lead to such problem.

Breannabreanne answered 16/12, 2018 at 18:12 Comment(0)
M
0

This similar error may also show if you have deleted an Activity java file previously and have not deleted the corresponding xml layout file.

Delete the xml file for the deleted Activity java file and Clean or Rebuild the project.

The reason behind it may be because of the mismatch of context in the xml. (This might occur if you are copy-pasting an xml layout code) Match the tools:context to the java file of the activity.

image

Marmoset answered 9/1, 2019 at 6:26 Comment(0)
F
0

I was doing Temperatur Converter App.I was facing same error while running the app as: Android Studio linking failed. In String.xml a line was missed, I included the line. It went fine without any errors.

Before Correction

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

After editing:

<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>
Forde answered 31/1, 2019 at 21:27 Comment(0)
T
0

Sometimes it happen what you copy paste code from another project fro example you copy

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

Unfortunately Android studio not always show dependency error, but what happen is that class NavigationView is missing because implementation 'com.android.support:design not added to the project

Takeo answered 9/2, 2019 at 12:45 Comment(0)
H
0

This sometimes happens when you have a random XML file doing nothing. Removing the file resolves the issue.

Hydrostatic answered 23/2, 2019 at 6:43 Comment(1)
If file is correct and formatted it doesn't matter if its there or not.Ambassadoratlarge
F
0

-May be the problem is that you have deleted .java files doing this doesn't delete the .XML files so go to res-> layout and delete those .XML files that you had delete before. -the another problem may be you haven't delete the files that is present in manifests under syntax that you deleted recently... So delete and run the code

Flotow answered 17/3, 2019 at 10:11 Comment(0)
B
0

I had the same problem but it occured in all my projects, I tried Invalidate Cache / Restart but even it doesn´t solved the problem.

At the end I realized that in my Gradle Settings, Offline Work was enabled.

Go to Build, Execution, Deployment > Gradle in Gradle Settings unchecked Offline Work.

enter image description here

It solved the the problem downloading some configuration files for my Android Studio.

Brainless answered 18/1, 2020 at 21:47 Comment(0)
S
0

My error was in a xml drawable file. I had the first liner duplicate. Changing it to this worked for me:

<?xml version="1.0" encoding="utf-8"?>
Sneaking answered 22/3, 2020 at 13:17 Comment(0)
R
0

Add agian your deleted drawable image .jpg/png etc formate. enter image description hereand Then run your project to fine working on android studio 3.6.1

Regulable answered 28/5, 2020 at 10:12 Comment(0)
H
0

I got this error due to 2 lines with the same content but different capitalization:

    app:layout_constraintHorizontal_bias="0.5"
    ...
    app:layout_constrainthorizontal_bias="0.5"

Android Studio 2020.3.1 does not mark this as an error in the xml file, but will throw the resource linking error when trying to build

Heinrick answered 20/8, 2021 at 0:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.