9
votes

Ressource dessinable introuvable mais elle existe dans le dossier dessinable

Je travaille sur une application Android depuis environ 2 mois. Presque chaque fois que j'ai créé un dessin personnalisé lorsque j'ai essayé de créer un projet, j'ai obtenu une erreur de liaison de ressources Android et après cela, le nom des dessinables qui n'ont pas pu être localisés par Android Studio.

Ma solution était que j'ai déplacé ces drawables quelque part hors de mon projet et reconstruit l'application après avoir obtenu une erreur.J'ai déplacé à nouveau les drawables vers mon projet et lorsque je reconstruisais mon APK il n'y avait plus d'erreur et je pouvais créer, exécuter, même générer des APK et ces drawables fonctionnaient parfaitement bien. Mais maintenant que mon projet est terminé, je veux générer un apk signé, mais il n'y a aucun moyen de me débarrasser de l'erreur d'échec de liaison des ressources Android. J'ai mis certains de mes codes drawables ci-dessous.

retry_btn.xml :

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "uk.MyAppName.www.MyAppName"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
//            minifyEnabled false
//            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    productFlavors {
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:exifinterface:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:design:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'org.jetbrains.anko:anko-commons:0.10.4'
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.google.android.exoplayer:exoplayer:2.9.1'
}

story_box.xml :

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item>
            <shape
        android:shape="rectangle">
                <stroke android:width="1dp" android:color="#333333" />
                <solid android:color="#EEEEEE" />
        </shape>
    </item>
</layer-list>

table_border.xml :

<?xml version="1.0" encoding="utf-8"?>
    <shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:color="#70707070" android:width="1dp"/>
</shape>

Tous les drawables sont disponibles dans mon projet mais j'obtiens cette sortie lorsque j'essaye de générer un apk signé:

La liaison des ressources Android a échoué

Sortie: C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ src \ main \ res \ layout \ activity_main.xml: 51: error: resource drawable / search (aka uk.MyAppName.www.MyAppName: drawable / search) non a trouvé.
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ src \ main \ res \ layout \ activity_movie.xml: 234: erreur: ressource drawable / story_box (alias uk.MyAppName.www.MyAppName: drawable / story_box) introuvable.
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ src \ main \ res \ layout \ activity_no_internet.xml: 49: error: resource drawable / retry_btn (aka uk.MyAppName.www.MyAppName: drawable / retry_btn) not found.
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ src \ main \ res \ layout \ activity_register.xml: 205: erreur: ressource drawable / register_btn (aka uk.MyAppName.www.MyAppName: drawable / register_btn) introuvable.
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ src \ main \ res \ layout \ activity_register.xml: 215: error: resource drawable / register_btn (aka uk.MyAppName.www.MyAppName: drawable / register_btn) not found.
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ src \ main \ res \ layout \ activity_search.xml: 39: erreur: ressource drawable / search (aka uk.MyAppName.www.MyAppName: drawable / search) non trouvée.
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ src \ main \ res \ layout \ search_table_item.xml: 2: erreur: ressource drawable / table_border (aka uk.MyAppName.www.MyAppName: drawable / table_border) introuvable.
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ src \ main \ res \ layout \ table_item.xml: 2: error: resource drawable / table_border (aka uk.MyAppName.www.MyAppName: drawable / table_border) introuvable.
erreur: échec de la liaison des ressources du fichier.

Commande: C: \ Users \ MyUser.gradle \ caches \ transforms-1 \ files-1.1 \ aapt2-3.2.1-4818971-windows.jar \ ac5e520165d725772f5386c054776ce5 \ aapt2-3.2.1-4818971-windows \ aapt2.exe link - JE\
C: \ Users \ MyUser \ AppData \ Local \ Android \ Sdk \ plates-formes \ android-28 \ android.jar \
--manifeste\
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ build \ intermediates \ merged_manifests \ release \ processReleaseManifest \ merged \ AndroidManifest.xml \
-o \
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ build \ intermediates \ processing_res \ release \ processReleaseResources \ out \ resources-release.ap_ \
-R \
@C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ build \ intermediates \ incremental \ processReleaseResources \ resources-list-for-resources-release.ap_.txt \
--auto-ajout-superposition \
--Java\
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ build \ generated \ not_namespaced_r_class_sources \ release \ processReleaseResources \ r \
--proguard \
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ build \ intermediates \ proguard-rules \ release \ aapt_rules.txt \
- package-personnalisé \
uk.MyAppName.www.MyAppName \
-0 \
apk \
--output-text-symboles \
C: \ Users \ MyUser \ AndroidStudioProjects \ MyAppName \ app \ build \ intermediates \ symboles \ release \ R.txt \
--no-version-vecteurs
Démon: AAPT2 aapt2-3.2.1-4818971-windows Daemon # 0

ceci est mon fichier gradle:

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/register_btn_disabled"/>
    <item android:state_pressed="true" android:drawable="@drawable/register_btn_clicked"/>
    <item android:state_pressed="false" android:drawable="@drawable/register_btn_normal"/>
    <item android:drawable="@drawable/register_btn_normal"/>
</selector>


0 commentaires

9 Réponses :


0
votes

recherchez votre fichier gradel et assurez-vous que l'ID de l'application est le même que le package du fichier mainfest dans l'attribut package


1 commentaires

Vérifié et corrigé mais cela n'a malheureusement pas aidé



2
votes

Supprimez shrinkResources si vous l'utilisez dans un fichier gradle. Cela peut également arriver lorsque proguard été activé


2 commentaires

shrinkResources n'est pas utilisé ... proguard commenté dans le fichier gradle ne fonctionne pas ... Je peux générer un apk normal mais je ne peux pas générer un apk signé.


Voici. Fichier Gradle ajouté



9
votes

À tous ceux qui sont confrontés à ce problème, changez simplement votre dossier drawable en drawable-v (votre version sdk), espérons que cette réponse résoudra vos problèmes. Ou ajoutez un autre répertoire dessinable avec le nom mentionné et copiez simplement vos fichiers dessinables là-bas.


0 commentaires

0
votes

Quelque chose qui a fonctionné pour moi avec un problème similaire a été de supprimer la référence à l'ID du dessinable, puis d'utiliser la saisie semi-automatique d'Android Studio pour le restaurer.


0 commentaires

3
votes

cela ressemble à une erreur similaire que j'ai rencontrée

l'utilisation de l'outil Analyse -> inspect code ... montré l'erreur dans le journal

dessinable introuvable

veuillez regarder ici pour une explication complète


0 commentaires

2
votes

si vous créez une version de votre application, assurez-vous que les fichiers res qui sont dits not found sont pas dans le dossier de debug , vous pouvez le vérifier en ouvrant vos fichiers selon la vue Project au lieu de la vue Android


0 commentaires

2
votes

J'ai rencontré le même problème: créez simplement un nouveau dossier dessinable avec votre version SDK comme (drawable-24) et collez-y vos dessinables et reconstruisez le projet.


1 commentaires

Fonctionne comme un charme :)



0
votes

Pour moi, le problème se pose lors de l'insertion d'un nouvel élément Image Vector à partir de la bibliothèque Android.

C'était un atout que j'avais déjà dans mon dossier: une icône de sauvegarde, donc je l'ai nommé différemment.

J'ai l'habitude d'avoir des valeurs standard pour tous mes actifs, donc je ctrl + C, ctrl + V ces valeurs sur le nouvel actif créé, elles n'incluent que la couleur et la taille, quelque chose comme ceci:

xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#718792"
android:viewportWidth="24.0"
android:viewportHeight="24.0"

Je laisse toujours le chemin intact.

Après avoir supprimé cet élément, tout est revenu à la normale.

Exemple de la façon dont on ne devrait jamais aller à plein régime en écrivant du code sans tester chaque ligne insérée (un peu comme la réponse pavlovienne à ctrl + G dans AutoCad pour ceux qui le connaissent), ... je n'exagère même pas.


0 commentaires

0
votes

Dans mon cas, dans le xml, il utilisait "@android:drawable/" au lieu de "@drawable/" . Le passage à "@drawable/" permis à Android Studio de trouver mon fichier.


0 commentaires