问题
After recently upgrading my android studio, I am not able to build my project anymore.
Every time I execute a build, I am struck with the following error:
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)}
This error persists, even though the file splash_screen.xml exists under the drawable folder.
Rebuilding, cleaning the project and invalidating caches did not work!
Adding the line android.enableAapt2=false does not resolve the real issue and I would therefore rather find the root of the problem.
The following shows my gradle.build file:
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'
Any help is kindly appreciated.
回答1:
In my case it was an xml selector. In the first line I had two of these (thanks to copy paste among my files):
<?xml version="1.0" encoding="utf-8"?>
and Android Studio didn't give any warning or something. Removing it fixed the problem but it needed a full clean build afterwards.
回答2:
I fixed the error, which was probably coming from a mal-formatted copied xml file (probably some line-ending confusion)
Rewriting those fixed the error, although Android Studio displayed another file as the source of the problem, which in fact had nothing to do with the error itself
回答3:
In my case it was malformed splash_screen.xml which was part of "reverted commit" which actually deleted this file, but somehow it was still may be it was in active changelist.
Fixed that file and solved issue.
回答4:
In my case it was a drawable resource file that required a higher API version as it was my minSdkVersion set in build.gradle. The main problem was that file did not show any error until you opened it, so it was hard to find it at all. I have spent at least 4 hours trying other things, since as an error when building the project it showed other drawable resource files that did not have any problems at all. After removing the drawable that required the higher API the app built normally.
回答5:
Check your each and every XML and may be you will found following situation.
While coping code or files from other projects, may be you forgot to add some resource like drawables, strings.
Check each drawable files, may Android Studio will highlight when you open that file.
Sometimes this types of error we have to find because Android Studio stucks with errors.
回答6:
I had the same problem and I solved it when I added my icons in the drawable file to 24dp.
Copy any icon you want and paste it in the drawable file, and it will create (by default) 24dp icons.
回答7:
In my case I delete namespace declaration Duplicate like xmlns:android="http://schemas.android.com/apk/res/android" and i used Analyse -> inspect code tool to show the error in the log, and i resolve the error in other files xml in drawable resource.
回答8:
I faced the same problem while building a release version of my app the problem was that i had some important res
files of my project inside the debug
directory instead of having them inside the release
dir so i fixed the problem by moving the files that were in debug
inside release
you can check it by viewing your project tree under project
instead of android
来源:https://stackoverflow.com/questions/49965610/aapt-error-resource-drawable-not-found