Après la mise à niveau récente de mon studio Android, je ne peux plus construire mon projet.
Chaque fois que j'exécute une construction, l'erreur suivante est frappée:
error: resource drawable/splash_screen (aka com.whereisthemonkey.nowalism:drawable/splash_screen) not found.
Message{kind=ERROR, text=error: resource drawable/splash_screen (aka com.whereisthemonkey.nowalism:drawable/splash_screen) not found., sources=[C:\Users\Lucas\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\cf575568f869a44c685b16e47de83a28\res\values\values.xml:1632:5-84], original message=, tool name=Optional.of(AAPT)}
Cette erreur persiste, même si le fichier splash_screen.xml existe sous le dossier pouvant être dessiné.
La reconstruction, le nettoyage du projet et l'invalidation des caches ne fonctionnaient pas!
L'ajout de la ligne Android.enableAapt2 = false ne résout pas le problème réel et je préfère donc en rechercher la racine.
Ce qui suit montre mon fichier gradle.build:
apply plugin: 'com.Android.application'
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'
apply plugin: 'kotlin-kapt'//https://github.com/bumptech/glide/issues/1939
Android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "com.whereisthemonkey.nowalism"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
// Keep the following configuration in order to target Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
res.srcDirs += [
'src/main/res-backgrounds',
'src/main/res-jobs',
]
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:cardview-v7:27.1.1'
implementation 'com.Android.support:recyclerview-v7:27.1.1'
implementation 'com.Android.support:design:27.1.1'
implementation 'com.Android.support.constraint:constraint-layout:1.1.0'
//Do not update due to dex error
implementation 'org.Apache.commons:commons-lang3:3.6'
//Do not update due to dex error
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.google.Android.gms:play-services:11.8.0'
implementation 'com.aurelhubert:ahbottomnavigation:2.1.0'
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
implementation 'com.afollestad.material-dialogs:commons:0.9.6.0'
implementation 'com.amitshekhar.Android:android-networking:1.0.1'
implementation 'org.Apache.directory.studio:org.Apache.commons.io:2.4'
implementation 'com.github.ome450901:SimpleRatingBar:1.4.1'
implementation 'com.sothree.slidinguppanel:library:3.4.0'
implementation 'com.github.esafirm.Android-image-picker:imagepicker:1.12.0'
//Do not update due to dex error
implementation 'com.theartofdev.edmodo:Android-image-cropper:2.5.1'
implementation 'com.github.bumptech.glide:glide:4.6.1'
kapt 'com.github.bumptech.glide:compiler:4.6.1'//https://github.com/bumptech/glide/issues/1939
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'de.hdodenhof:circleimageview:2.2.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.1'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.firebaseui:firebase-ui-auth:3.2.1'
implementation 'com.Android.support:support-v4:27.1.1'
}
apply plugin: 'com.google.gms.google-services'
Toute aide est aimablement appréciée.
J'ai corrigé l'erreur, qui venait probablement d'un fichier xml copié mal formaté (probablement une confusion en fin de ligne)
La réécriture corrigeait l’erreur, bien que Android Studio affiche un autre fichier comme source du problème, ce qui n’a en fait rien à voir avec l’erreur elle-même.
Dans mon cas, c'était un sélecteur XML. En première ligne, j'en ai eu deux (merci de copier coller dans mes fichiers):
<?xml version="1.0" encoding="utf-8"?>
et Android Studio n'a donné aucun avertissement ou quelque chose. En le supprimant, le problème a été résolu, mais il a ensuite fallu une nouvelle version.
Dans mon cas, il s’agissait du fichier splash_screen.xml malformé, qui faisait partie du "commit inversé", qui supprimait en réalité ce fichier, mais il était peut-être toujours dans une liste de modifications active.
Correction de ce fichier et problème résolu.
Dans mon cas, il s’agissait d’un fichier de ressources exploitable qui nécessitait une version d’API supérieure à celle définie dans mon jeu minSdkVersion dans build.gradle. Le problème principal était que le fichier ne montrait aucune erreur jusqu'à ce que vous l'ouvriez. Il était donc difficile de le trouver du tout. J'ai passé au moins 4 heures à essayer d'autres solutions, car lors de la construction du projet, une erreur avait montré d'autres fichiers de ressources pouvant être téléchargés, qui ne présentaient aucun problème. Après avoir retiré le dessin qui nécessitait l’API la plus élevée, l’application a été construite normalement.
Vérifiez votre chaque XML et peut-être vous trouverez la situation suivante.
Lors de la copie de code ou de fichiers provenant d’autres projets, vous avez peut-être oublié d’ajouter des ressources telles que drawables, chaines.
Vérifiez chaque fichier pouvant être dessiné, peut Android Studio sera mis en évidence lorsque vous ouvrez ce fichier.
Parfois, nous devons trouver ce type d'erreur, car Android Studio est bloqué par des erreurs.