73 votes

Échec de la liaison des ressources du fichier

Voici le fichier java qui donne l'erreur

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

Les erreurs que je reçois sont les suivantes

Information:Tâches Gradle [clean, :app:assembleDebug] C:\Projects\TimeTable\app\src\main\res\layout\activity_main.xml Erreur : la ressource Android:attr/colorSwitchThumbNormal est privée. Erreur : la ressource Android:attr/colorSwitchThumbNormal est privée. C:\Projects\TimeTable\app\src\main\res\layout -terre \activity_main.xml Erreur : la ressource Android:attr/colorSwitchThumbNormal est privée. Erreur : la ressource Android:attr/colorSwitchThumbNormal est privée. Erreur:échec de la liaison entre les ressources du fichier. Erreur:java.util.concurrent.ExecutionException : java.util.concurrent.ExecutionException : com.Android.tools.aapt2.Aapt2Exception : AAPT2 error : vérifiez les journaux pour plus de détails. Erreur:java.util.concurrent.ExecutionException : com.Android.tools.aapt2.Aapt2Exception : Erreur AAPT2 : vérifiez les journaux pour plus de détails Erreur:com.Android.tools.aapt2.Aapt2Exception : Erreur AAPT2 : vérifiez les journaux pour plus de détails Erreur:Échec de l'exécution de la tâche ':app:processDebugResources'. Échec de l'exécution d'aapt Information:BUILD FAILED in 9s Information:9 erreurs Information:0 avertissements Information:Voir la sortie complète dans la console

Voici le fichier 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>

130voto

Anga Koko Points 597

Vous avez peut-être cette erreur sur votre java parce qu'il y a un ou plusieurs XML avec une erreur.

Passez en revue tous vos XML et résoudre les erreurs, puis clean ou rebuild projet à partir du menu de construction

Commencez par votre dernière édition XML fichier

1 votes

Oui, parfois le problème a été résolu en nettoyant ou en reconstruisant le projet. Mais cela ne fonctionne pas à chaque fois, il faut vérifier le fichier récemment ajouté. Happy Learning

3 votes

J'avais un problème dans le fichier XML que l'IDE ne mettait pas en évidence. J'ai dû demander à mon collègue de compiler pour moi et cela s'est affiché dans son IDE. Android Studio bogué.

0 votes

Il est préférable d'éviter de modifier un grand nombre de fichiers xml sans avoir construit ou exécuté le projet. En effet, lorsque vous exécutez votre projet et que vous avez cette erreur après avoir modifié un grand nombre de fichiers xml, vous aurez du mal à déterminer lequel de ces fichiers est incorrect.

37voto

P Fuster Points 355

Si quelqu'un lisant ceci a le même problème, cela m'est arrivé récemment, et c'était dû au fait que l'en-tête xml avait été écrit deux fois par erreur :

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

L'erreur que j'obtenais n'avait rien à voir avec ce fichier, il a donc été difficile de la trouver. Assurez-vous simplement que tous vos nouveaux fichiers xml ne comportent pas une erreur de ce type (car elle n'apparaît pas comme une erreur). EDIT Il semble que cela apparaisse comme une erreur maintenant, assurez-vous de vérifier vos journaux d'erreurs.

0 votes

Merci, j'ai un problème avec le fichier créé récemment.

0 votes

La réparation est là !

0 votes

J'ai eu la même erreur en n'ayant pas l'en-tête XML. Votre commentaire m'a conduit au problème.

35voto

arenaq Points 953

Une solution possible que j'ai déjà mentionnée dans un commentaire :

J'avais un problème dans le fichier XML que l'IDE ne mettait pas en évidence. J'ai dû demander à mon collègue de compiler pour moi et cela s'est affiché dans son IDE. Android buggy Studio.

Mais j'ai trouvé un moyen de contourner ça.

Si vous allez dans le panneau Gradle à droite. Sélectionnez le module souhaité, par exemple application alors sous construire sélectionnez assembleDebug il vous montrera toutes les erreurs dans stdout.

enter image description here

1 votes

Bravo, belle façon de trouver le problème !

0 votes

C'est très utile. Merci.

0 votes

Excellent commentaire, très utile. J'ai pu trouver le problème immédiatement en faisant cela... il s'est avéré que j'avais une contrainte de nom incorrecte dans mon xml.

13voto

Izabela Orlowska Points 4270

Regardez l'erreur que vous obtenez :

C:\Projects\TimeTable\app\src\main\res\layout -terre \activity_main.xml Erreur : la ressource Android:attr/colorSwitchThumbNormal est privée.

Cela signifie que dans votre activity_main.xml, vous faites référence à la couleur "Android:colorSwitchThumbNormal", mais dans l'espace de noms "Android", cette ressource est privée. Ce que vous voulez probablement faire, c'est essayer de référencer cette couleur à partir de la version de support de cet attribut, donc sans le préfixe "Android :".

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

Remplacer par :

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

0 votes

J'ai compris l'erreur après avoir lu votre réponse mais je n'ai toujours pas réussi à résoudre l'erreur...... J'ai ajouté le fichier android_main.Xml ...... J'espère que vous pourrez y jeter un coup d'œil.

0 votes

"?Android:attr/colorSwitchThumbNormal" -> "?attr/colorSwitchThumbNormal". N'utilisez pas l'espace de nom "Android".

0 votes

J'obtiens la même erreur, j'ai essayé de mettre à jour les outils de construction sans succès, j'ai supprimé toutes les références aux ressources @Android aussi, mais aucun changement, la même erreur.

3voto

40-Love Points 1333

Ce message signifie qu'il y a une erreur de syntaxe dans votre fichier XML. Si Logcat ne peut pas localiser l'erreur avec un message de journal convivial avec le nom du fichier xml, essayez de nettoyer le projet et de reconstruire le projet. Cela a fonctionné pour moi.

Dans l'onglet Build, vous obtiendrez un nœud nommé Android Issues.

Le message d'erreur expliquant l'erreur avec le fichier XML se trouve en dessous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X