AAPT error: resource drawable/... not found

AndroidResourcesAaptAapt2

Android Problem Overview


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.

Android Solutions


Solution 1 - Android

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.

Solution 2 - Android

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.

Solution 3 - Android

In my case I deleted 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, then I resolved the error in other files xml in drawable resource.

Solution 4 - Android

I was facing the same issue and finally solve this by

> Analyze>Inspect Code

My Application was missing ending tags in one of the XML File Just Try Analyze > Inspect Code it will redirect you to the exact error.

Solution 5 - Android

in my case i like this : <?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>

so i just remove one of them

Solution 6 - Android

Check your each and every XML and maybe you will find the following situation.

  • While coping code or files from other projects, maybe you forgot to add some resources like drawable, strings.

  • Check each drawable files, may Android Studio will highlight when you open that file.

Sometimes this type of error we have to find because of Android Studio stuck with errors.

Solution 7 - Android

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.

Solution 8 - Android

In my case it was a duplicated:

<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>

in a drawable ressource file

Solution 9 - Android

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.

Solution 10 - Android

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 the 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.

Solution 11 - Android

In my case, the problem is code conflict, other person changed the same file with me. The resource code is changed. When I fix the file, the problem is gone.

Solution 12 - Android

In my case: There was a file that I did not create inside a drawable file, and this file was empty and I just deleted it and the program started

Solution 13 - Android

If you got down here and yet didn't got the answer so you might need to use mipmap. It's used to find the assets related to the target device dpi (like: mdpi, hdpi, xhdpi, ...).

So all you need to do is to address the asset from the mipmap instead of drawable.

android:resource="@mipmap/splash_screen"

Open your AndroidManifest.xml and where ever you used drawable change it to mipmap. here is some example:

enter image description here

Solution 14 - Android

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

Solution 15 - Android

while copy and pasting code I also pasted below line

<?xml version="1.0" encoding="utf-8"?>

Since,my xml file already contain above line and on adding this line it appear twice .

so I remove one of these line and it resolve my error

Solution 16 - Android

In my case , I used a wrong reference to the android resource file i.e android:color/splash_bg instead of @color/splash_bg

where splash_bg represents my custom color resource declared in res/values/colors.xml file.

Solution 17 - Android

In my case I had to remove android:src="@drawable/background" and android:src="@drawable/logo" lines from splash_screen.xml although the error was originally pointing at AndroidManifest.xml.

And like the first post is saying, make sure the <?xml version="1.0" encoding="utf-8"?> is correct in all xml files.

Solution 18 - Android

In my case I had deleted the folder "drawable"

Solution 19 - Android

I reformated code (since I didn't find error) in one of xml (vector) files that wasn't mentioned in error (I think) as mentioned also by @Lucas Romier, but file name was underlined red and it suggested then clean build and it worked then. :)

Solution 20 - Android

for me the problem was that i misspelled the names of drawable-mdpi, drawable-hdpi, etc. (I wrote them as dawable-mdpi, etc.)

Solution 21 - Android

In my case File > Invalidate Caches, Build > Rebuild Project, removing .gradle folder didn't help. So I removed a folder res\mipmap-anydpi-v26 that contained a conflicting file.

Solution 22 - Android

I had the same issue. Solved it by manually adding

dependencies {
    ...
    implementation project(':react-native-splash-screen')
}

even after linking with react-native. Also added

protected void onCreate(Bundle savedInstanceState) {
    SplashScreen.show(this);  // Added this
    super.onCreate(savedInstanceState);
}

Solution 23 - Android

copy "res" folder from another project (where is res folder - android/app/src/main) paste your own project. re run.

Solution 24 - Android

copy drawable folder all file and paste drawable_v24 folder your own project. re run. I hope this is work.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLucas RomierView Question on Stackoverflow
Solution 1 - AndroidMohsenView Answer on Stackoverflow
Solution 2 - AndroidLucas RomierView Answer on Stackoverflow
Solution 3 - AndroidAyoub AnbaraView Answer on Stackoverflow
Solution 4 - AndroidZahid IqbalView Answer on Stackoverflow
Solution 5 - Androiduser9055011View Answer on Stackoverflow
Solution 6 - AndroidPratik ButaniView Answer on Stackoverflow
Solution 7 - AndroidMustafa Al-SalhiView Answer on Stackoverflow
Solution 8 - AndroidMakiXView Answer on Stackoverflow
Solution 9 - AndroidAskQView Answer on Stackoverflow
Solution 10 - AndroidMarko JankovicView Answer on Stackoverflow
Solution 11 - AndroidSherryWuView Answer on Stackoverflow
Solution 12 - Androidmary mariaView Answer on Stackoverflow
Solution 13 - AndroidTabaView Answer on Stackoverflow
Solution 14 - AndroidAleyamView Answer on Stackoverflow
Solution 15 - AndroidWelcome_backView Answer on Stackoverflow
Solution 16 - AndroidIsaac PitwaView Answer on Stackoverflow
Solution 17 - AndroidHusky931View Answer on Stackoverflow
Solution 18 - AndroidAlan SoaresView Answer on Stackoverflow
Solution 19 - AndroidMihajlo NestorovićView Answer on Stackoverflow
Solution 20 - AndroidAdnanView Answer on Stackoverflow
Solution 21 - AndroidCoolMindView Answer on Stackoverflow
Solution 22 - AndroidYouzefView Answer on Stackoverflow
Solution 23 - AndroidEray HamurluView Answer on Stackoverflow
Solution 24 - AndroidRaihan MahamudView Answer on Stackoverflow