Android resource linking failed - How to solve it? - android

I recently changed the icon of my app. When I run the app using USB debugging on my phone, everything is fine, the app compiles and the icon is as it should be. But as soon as I try to generate a signed APK, the compilation ends with this error:
A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
Android resource linking failed
C:\Users\Adam\AndroidStudioProjects\Generator\app\build\intermediates\packaged_manifests\release\AndroidManifest.xml:11: error: resource mipmap/ic_launcher not found.
Which is strange because otherwise everything works and the xml file is where it's supposed to be. I created the icons using Image Asset and they generated correctly. The only thing that comes to me as a possible cause is that for ic_launcher there is only an xml file, but ic_launcher_round has a whole folder with png images as well. Also, in the manifest there is a preview of the icon only for the round version, it is not loaded for the regular version:
How can I solve this?

Solved, it was enough to select the icon as res directory: main when confirming the path.

Related

Android build error using NativeScript Sidekick: app:mergeDebugResources

I'm building an app with NativeScript using TypeScript and Angular. This has happened twice while building the app.
In order to add resources (like images), I add them to my_app_folder\app\App_Resources\Android\src\main\res. I accidentally added a folder called "video" with a file called "sample_video.mp4" into the res folder. When I tried to run my app on my Android emulator using the cloud build, I received this error in my NativeScript Sidekick console:
/mnt/storage/builds/_/b10d99b4991d936c4896cd72f0628901fa996d4c/4.2.4/saintstanreal/platforms/android/app/src/main/res/video/sample_video.mp4: Error: The file name must end with .xml
I realized I had placed the file in the wrong place, deleted the video and the video folder, and tried to build the app again, but now I am consistently getting the above error, even though the offending file is long gone.
This has happened to me before (with a .png file with a capital letter in the name, which android does not like) and I would love to know why. Last time I had to delete my whole project, revert to my previous commit, and rebuild the app, which is frustrating.
My app ran perfectly fine before I added that file, so I know that the problem is not being caused by my code. I tried deleting the android platform and reinstalling it, to no avail.
Any help would be amazing as I am very confused as to why the file, which is no longer in my project, would continue to cause this problem.
Try a clean build to reset the data that was cached.
In Sidekick go to Build and from the menu options check Clean Build
When you enable the Clean Build option, any previously cached data
will be ignored and the application will undergo a complete rebuild.
This type of build will not take advantage of certain optimizations
and may take longer to finish.
As of the resolution of this issue in NativeScript Sidekick, using File -> Clean Cloud Workspace fixes this problem.
If I add an incorrect resource file to Android's "res" folder, try to build (and fail), remove the incorrect file, and use the "Clean Cloud Build" command, the Android cloud build will then work as intended (without having to use the "Clean Build" checkbox when building).

Error:Some file crunching failed, see logs for details afer update gradle

Afer update gradle version to classpath 'com.android.tools.build:gradle:2.3.0' I got this error.
Error:Some file crunching failed, see logs for details
Error:Execution failed for task ':app:mergeDebugResources'.
> Error: Some file crunching failed, see logs for details
AAPT err(Facade for 596378712): \\?\C:\Users\Я\.android\build-cache\2fe51ff37440fab8f5f875609a799aebf31c9e02\output\res\drawable-xxxhdpi-v4\abc_ic_menu_share_mtrl_alpha.png ERROR: Unable to open PNG file
AAPT err(Facade for 596378712): \\?\C:\Users\Я\.android\build-cache\2fe51ff37440fab8f5f875609a799aebf31c9e02\output\res\drawable-xxxhdpi-v4\abc_tab_indicator_mtrl_alpha.9.png ERROR: Unable to open PNG file
AAPT err(Facade for 596378712): \\?\C:\Users\Я\.android\build-cache\2fe51ff37440fab8f5f875609a799aebf31c9e02\output\res\drawable-hdpi-v4\abc_btn_radio_to_on_mtrl_015.png ERROR: Unable to open PNG file
I'm not using 9.png files. How can I fix it?
I have exactly same problem in Android Studio 2.3.
I wasted 2 days to solve this problem.
Your problem is
AAPT err(Facade for 596378712): \\?\C:\Users\Я\.android\build- .....
Folder name of your account(reverse R?) is not ascii folder name, so build-cache cannot recognize your folder.
To Solve:
Change folder name : it's impossible in windows 10.
not use build cache: Leos Literak's answer. not good solution.
Best solution: change build-cache path.
refer to https://developer.android.com/studio/build/build-cache.html
For Ex:
in gradle.properties
android.buildCacheDir=D:/android-studio/build-cache
You can build your app cleanly.
Thanks.
I have upgraded to Studio 2.3 as well and this error suddenly occured.
AAPT: \\?\C:\Users\Leoš\.android\build-cache\ce4c6faf7b6acf7c9a9f7875a69dc5776c2cfd5b\output\res\drawable-xhdpi-v4\msbp_math_compass.png ERROR: Unable to open PNG file
I realized one similarity in your and my logs: non-ASCII characters in user name. Then I found that it is a build cache directory. And there was info how to turn it on. So I tried to turn it off with:
gradle.properties
android.enableBuildCache=false
And it works! I can compile my project again. I submitted issue 236304 to Google.
Another option is to change build cache location:
android.enableBuildCache=true
android.buildCacheDir c:\\Dev\\Android\\cache\\
I started getting this error too with Android Studio 2.3 on Mac. Neither disabling the buildCache nor changing the location of the buildCache resolved the problem.
Renaming all of my 9-patch drawables from 'xyz.9.png' to 'xyz.png' - removing the '.9' in the filename - fixed the problem.
Check your png files, in my case that was the problem (One picture was a JPEG file with .png at is end)
Remove it/them and remplace it/them by "real" png files and it may works
The path of the file might be too long for the compiler to build with it. Try moving your project to another location to reduce the length of the destination.
I ran into the same situation as #wooldridgetm.
Later I found that if my 9-patch file has marked stretch area for both left and top side, not only one side, then the problem is solved.
I don't know if it is allowed to have only one side before. Hope this help.
The problem is related to 1 corrupted image file in drawable.
I changed it and the problem was solved very quickly.
The answer is very simple, but the error message is rather ambiguous.
I changed the gradle and android studio, but the solution was very simple than what I thought.
In my case, it was some corrupted PNG file in resources too.
Try going through all of your images and see if you are able to view them in some external preview program.

Execution failed for task 'app:mergeDebugResources' Crunching Cruncher....png failed

I've added some pictures with the format *.png to my drawable-directory and linked it with the layouts. But every time when I tried to build it, there appears an error
"...Crunching Crunsher ...png failed"
Following is the output of the console:
app:mergeDebugResources
AAPT out(1561599) : No Delegate set : lost message:Done
AAPT out(12956469) : No Delegate set : lost message:Done
AAPT out(20612543) : No Delegate set : lost message:Crunching C:\Dev\StudioProjects\test\android\app\src\main\res\drawable\bt_meeting_focused.png
AAPT out(11030156) : No Delegate set : lost message:Crunching C:\Dev\StudioProjects\test\android\app\src\main\res\mipmap-mdpi\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message:Crunching single PNG file: C:\Dev\StudioProjects\test\android\app\src\main\res\mipmap- mdpi\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message: Output file: C:\Dev\StudioProjects\test\android\app\build\intermediates\res\debug\mipmap-mdpi-v4\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message:Done
AAPT err(11030156): libpng error: Not a PNG file
AAPT out(20612543) : No Delegate set : lost message:Crunching single PNG file: C:\Dev\StudioProjects\test\android\app\src\main\res\drawable\bt_meeting_focused.png
AAPT out(20612543) : No Delegate set : lost message: Output file: C:\Dev\StudioProjects\test\android\app\build\intermediates\res\debug\drawable\b t_meeting_focused.png
AAPT out(20612543) : No Delegate set : lost message:Done
AAPT err(20612543): libpng error: Not a PNG file
AAPT err(1561599): libpng error: Not a PNG file
AAPT err(12956469): libpng error: Not a PNG file
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Crunching Cruncher uhr.png failed, see logs
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or -- debug option to get more log output.
BUILD FAILED
Total time: 14.598 secs
Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources]
Configuration on demand is an incubating feature.
:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportSupportV42220Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
AAPT out(14080484) : No Delegate set : lost message:Done
AAPT out(9206750) : No Delegate set : lost message:Done
AAPT out(25360025) : No Delegate set : lost message:Done
AAPT err(25360025): libpng error: Not a PNG file
AAPT err(14080484): libpng error: Not a PNG file
AAPT out(6423170) : No Delegate set : lost message:Crunching C:\Dev\StudioProjects\test\android\app\src\main\res\drawable\anfrage_senden_.png
AAPT err(6423170): libpng error: Not a PNG file
AAPT out(6423170) : No Delegate set : lost message:Crunching single PNG file: C:\Dev\StudioProjects\test\android\app\src\main\res\drawable\anfrage_senden_.png
AAPT out(6423170) : No Delegate set : lost message: Output file: C:\Dev\StudioProjects\test\android\app\build\intermediates\res\debug\drawable\a nfrage_senden_.png
AAPT out(6423170) : No Delegate set : lost message:Done
AAPT err(9206750): libpng error: Not a PNG file
Process list not empty
:app:mergeDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Crunching Cruncher uhr.png failed, see logs
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or -- debug option to get more log output.
BUILD FAILED
Total time: 4.325 secs
I tried to clean the project, rebuild it, refresh the dependencies via "gradlew clean build --refresh-dependencies", nothing worked. I've checked the dependencies in the build.gradle file but nothing seems creating the error.
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
compileOptions.encoding = 'windows-1251'
defaultConfig {
applicationId "com.example.benutzer.test"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:support-v4:22.2.0'
}
Do you've got an idea, what's the source of the error? The filepath is also not too long and everytime unter 256 signs, that also not the problem :/
Thank you in advance :)
In my case, the error was caused by a PNG file I added to the drawable folder. I had changed its extension from jpg to png by changing the text (in an inproper way) and then uploading it as PNG.
This was the problem Android Studio was pointing to.
I fixed this problem and got the error to disappear by changing the file extension using the Paint.NET tool or any other tool (proper way), and then uploading it to the drawable folder.
I fixed this issue by moving the project to the outer directory, and it then compiled successfully.
It was due to the long path of the project directory.
For example, I moved the project from:
D:/Android/Apps/AndroidStudioProject/AppName
to
D:/Android/AppName
This is due to adding an image in drawable which has some extension like (.jpg), and you have changed or saved that to a .png format (this error will occur while changing the image format manually without using an editor tool).
Android Studio will throws an error while compiling the resource package using AAPT (Android Asset Packaging Tool), so all you need to do is use some image editor tools like GIMP or Paint to save the extension accordingly. Rebuild your project once everything is done.
For example: open your image in Paint (drag and drop your image to open it) → menu File → Save As → Save as Type → select your required type from the dropdown like I have shown in the below pictures:
In my case the solution was simple. I moved the entire project to another location where the path is short.
The problem was caused by long directory names and file names.
The best solution is to change buildDir in build.gradle:
For example:
allprojects {
buildDir = "C:/tmp/${rootProject.name}/${project.name}"
repositories {
jcenter()
}
}
Rebuild and happy coding.
In my case, I solved this problem by simply changing my library file as I made a silly mistake of adding two different versions of the same library.
As this can be due to varied reasons, I found out the following ways to solve this issue as per the problem:
Mismatch of resources
Missing attributes, wrong tags, etc. in resources
Issue in styles
Missing name in styles
Duplicacy of resources and libraries
Sometimes it can even be solved by changing the compatible library in build.gradle
Executing the aapt command
Renaming the extension from .jpg to .png
Simply with the help of Clean Project.
Even in some cases, restarting Android Studio can solve the problem.
This is because your PNG file is not supported or else you renamed your file directly.
Do the following steps.
Copy your image source file from Android Studio to your desktop.
Open the file with Paint.
Save file as extension .png
Delete the existing source file from Android Studio which you copied.
Add the newly created file which you renamed via Paint.
Problem solved :)
In my case, when I created a 9.png file, my original PNG file was using the margin where the 9.png line is drawn, creating a bad 9.png file. Try to add some margin to your PNG file.
If you're running Linux, try this:
sudo apt-get install lib32stdc++6 lib32z1
It is from here.
The best answer is already given in the gradle output:
* Try:
Run with --stacktrace option to get the stack trace.
Open the Terminal in Android Studio and run gradlew :app:mergeDebugResources --stacktrace.
(In my case it was the Windows 240 char limit), but it should give you the root cause for any other issue just as well.
In my case, I believe this issue was to do with the length of the file path. UNIX and Windows systems impose a maximum path length of 255 and 260 characters respectively, and I believe the crunch process fails when assigning to a dynamically-specified path. So, even if the quoted path lengths in the error message are shorter than the limit (mine was only 187 within a Windows build environment), I think the crunch utility may internally specify a longer path, even if just temporarily.
You may determine whether this is the source of error by moving your project to the root-most directory on your file system, then attempt recompiling.
I tried to rebuilt, restart, clean, update Gradle, etc. However, none of them worked for me.
Sometimes, it can be caused by a wrong naming for an XML or resource file.
At least, for me, that problem was solved by changing the name.
I noticed downgrading Gradle build tools to 1.2.3 solved my problem of the Crunching PNG error, but on 1.5.0 the problem continues.
File > Invalidate Caches / Restart
I had put my images into my drawable folder at the beginning of the project, and it would always give me this error and never build so I:
Deleted everything from drawable
Tried to run (which obviously caused another build error because it's missing a reference to files
Re-added the images to the folder, re-built the project, ran it, and then it worked fine.
I have no idea why this worked for me, but it did. Good luck with this mess we call Android Studio.
The Crunching process is the image preparation process, which means something is wrong with your image files. In my case I had a PNG file which was not really a PNG file.
My solution:
I converted all my images to PNG running a super simple Python script from within the image folder, so in total all you need to do is:
In order to install the PIL library, run: pip install pillow
Save the below Python code in a .py file within your images folder you want to convert.
Adjust the from_format, to_format variables in the script to whatever you need.
Run script: python script_name.py
import os
from PIL import Image
from_format = (".jpg", ".png", ".bmp")
to_format = "png"
for fn in os.listdir('.'):
if os.path.isfile(fn) and fn.lower().endswith(from_format):
print "Converting File: %s" % fn
im = Image.open(fn)
im.save(fn.split('.')[0] + '.' + to_format, to_format.upper())
And if you want read more about the Image module: http://effbot.org/imagingbook/image.htm
I faced this problem when I copied my images (no matter JPEG or PNG) into the drawable folder manually. There might be different kinds of temporary solutions to this problem, but one best eternal way is to use the Drawable importer plugin for Android studio.
Install it by going to: menu File → Settings → Plugins → Browse Repositories → search "Drawable". You'll find Drawable importer as the first option. Click install on the right panel.
Use it by right clicking on the Drawable resource folder and then new. Now you can see four new options added to the bottom of the list, and among those you will find your appropriate option. In this case the "Batch drawable import" would do the trick.
I got this issue after migration to Gradle 3.3, on Windows (with gradle-2.14.1 everything was fine).
The problem was in the path to the Gradle build-cache, which contains Cyrillic characters, like
C:\Users\Иван\.android\build-cache
So I renamed the user's folder to "Ivan", and the problem was gone.
It seems to be a nasty problem of Gradle. We just upgraded from 2.14 to 3.3 and our build server couldn't build any more (a local build in Android Studio worked).
Error with too long path shows for example:
C:\Windows\System32\config\systemprofile.gradle\caches\3.3\scripts-remapped\build_bonsjy48fqq8sotonpgrvhswt\36ejadunoxgw3iugkh95lqw\projedd7e29570ae79482d0308d82f4e346b\classes\build_bonsjy48fqq8sotonpgrvhswt$_run_closure1$_closure8$_closure13$_closure14$_closure15.class
We had to create a local user account for the service that ran as system service for years... Now it saves under C:\Users... which is much shorter as the system profile path.
I changed the location of the app and copied it to a short path.
You can do that by just copying your project and pasting it to a new Short Location.
And, it worked for me.
For example,
Old_path: c/:user/android_studio_project/your_app
New_path: c/:your_app
Closing Android Studio and opening again solved this issue in my case.
Give it a try. I know it is not the right solution or answer, but it works. I am not sure about the root cause. It would be great if someone can share that.
I was importing an Android application in Android Studio (Gradle version 2.10) from Eclipse. The drawable images are not supported, then manually remove those images and paste some PNG images.
And also update the Android drawable importer from the Android repository. Then clean and rebuild the application, and then it works.
This error was caused for me because of the path where my project was located. There was a blank space in one folder, for example,
Folder\Another Folder\MyAndroidProjects\...
Changing it to Folder\AnotherFolder\MyAndroidProjects\... and resynchronising Gradle resolved this for me.
I have faced this problem also, and it has not been solved by reformatting the image although it was an image from a project app of Google, and it was only solved by:
Moving the project file to the partition directly
Try it. It might help you.
In my case I reached the solution in two steps:
Keep your project name, package name, folder names short, because if the directory name exceeds 255 characters it gives the mergeResource error.
Keep your drawables in the drawable folders. Any drawable file such as .jpg and .png outside the drawable folders throws the mergeResource folder error.
I am also suffering from the same issue. In my case I just copied the image to the drawable folder, then Android Studio is showing the error "Some file crunching failed".
My problem regarding to image only because that image was saved from the one of the my customized camera application in .png format. And for testing purposes I copied it into the drawable folder.
After that I tested saving the image as .jpg. It was not giving any error. That means the camera by default supports the ".jpg" format.
Finally I realized two things:
The camera by default supports the ".jpg" format
Without using image tools, don't change the image formats (even programmatically).
Just add this to your local.properties file of your project:
BUILD_DIR=C\:\\Tmp
(The error in Windows is due a long path, so I gave the path to one temporary folder.)
For me, it is because one of my .png files is actually a .psd file. Resave it to real PNG file, and it is fixed.
For me, it was a corrupted PNG file.
Go to your res folder and try to open every image. When you find an image which can't be opened, replace it with a good image.
It took a lot of investigation to figure this out, but the root cause of this issue, in my case, turned out to be that the processor of my dev machine is no longer supported by Android Studio. Please see this this issue for more details.
The issue manifests itself as errors related to *.9.png files, but in reality the problem is that Android Studio no longer works on processors that don't support SSSE3 instructions (AMD Phenom, Athlon and older processors, for instance). There doesn't seem to be any workaround at this time.

Resource already defined gradle Android studio

I have different image sizes in my drawable resource folders for different screen sizes. they are all splash_login.png splash_screen.png. In my layout-large resource directory however I have splash_login.jpg and splash_screen.jpg because the images are very big. Now when I try to run gradle build i get the following error in my stack trace
build/intermediates/symbols/release
Error Code:1
Output:
res/drawable-large-v4/splash_login.png:0: error: Resource entry splash_login is already defined.
res/drawable-large-v4/splash_login.jpg:0: Originally defined here.
res/drawable-large-v4/splash_screen.png:0: error: Resource entry splash_screen is already defined.
res/drawable-large-v4/splash_screen.jpg:0: Originally defined here.
I know this is occuring because the file extention has changed but does anyone know how to get around it without reverting my large images to .png files??
Thanks!
Found the answer. Running the following command fixed it for me :
gradle clean build assemble
Generally happen when you rename a resource (I had the problem with a .xml.xml I had to change to .xml)
From Android Studio :
Build > Rebuild Project
another option is to find the file in the build cache folders and rename/delete it there.
on my windows machine the problem file was in the '[project directory]\build\res\all\debug\raw' folder

Error Building Project in Android Studio "Error: No resource found that matches the given name (at ____ with value '#drawable/<name>')

I've searched all over Google, stackoverflow and other android programming websites, many have suggestions for people who have misplaced files from one folder to another and so forth.. But none that illustrate the problem I'm facing.
It's not a corrupt file as in the case here as I tried this with no success.
The error I'm facing is similar though:
[debug] C:\Users\Name\AppData\Local\Temp\android_manifest_copy6264790980678653632tmp\AndroidManifest.xml:11: error: Error: No resource found that matches the given name (at 'icon' with value '#drawable/ic_launcher').
Similarly, this is happening with an #string element, #style element and another #string, examples below:
'#string/app_name'
'#style/AppTheme'
'#string/app_name'
One thing that I have noticed, and coming from the world of Eclipse, I cannot explain this behavior in Android Studio.. In my 'main' project folder, everything exists and builds correctly for debugging. It seems that Android Studio is trying to build off of a 'debug' folder, which will not build when running 'Build' > 'Rebuild Project'.
Does anyone know where I can place these missing files to get the project to build? Or is this some other problem?
Alright, so after fussing with the rebuild for hours trying different methods (renaming particular files [i.e. those with the problems], rebuilding the app after renaming folders inside the build folder, etc) I finally decided that I would go to the source of the problem and see if it worked like other IDE's. Indeed it did, this is how I performed the fix:
Find the location of the problem - For me, all four of the errors I had were inside the 'build' folder of the project.
Close any open instances of the project
While the project is closed, rename this folder from windows explorer (or other if youre using a different OS) (i.e. If the folders name is "build", rename it to "build.old")
Open the project once more
Go to Build > Rebuild Project
You should not have any issues doing this, like I did.
Specifications:
IDE Platform: Android Studio
IDE Version: Android Studio (I/O Preview) 0.2.2
JRE: 1.7.0_25
My problem is about #drawable/img_1, the pic is JPEG format, while it's extension name is png, I force to rename it jpg extension. Then it builds successfully.
If anyone is using Gradle and sees this it's good to remind about the convention directory structure.
For Gradle you have to put your resources in src/main/res. I migrated a project to Gradle and got the said error when I hadn't moved the res/ directory from the old structure.

Categories

Resources