In the process of converting a project to the Android build system I get this error whenever I attempt to compile.
Gradle: Error parsing XML: prefix must not be bound to one of the reserved namespace names
The merged values.xml file contains the following root element:
<resources xmlns:ns1="http://www.w3.org/2000/xmlns/">
What is the cause of this error and how can it be fixed?
I just spent around 2 hours digging through the Git commit that broke our Gradle build. This commit contained over 200 changed files with 4000+ modified lines. You can imagine how much fun it was ;)
Anyway, here is what caused this obscure Gradle error for us: Some styles with a xmlns:custom
attribute were defined in res/values/styles.xml
:
<style name="content" xmlns:custom="http://schemas.android.com/apk/res-auto">
<item name="android:textSize">14sp</item>
<item name="android:textColor">@color/content</item>
</style>
As you can see the custom
namespace is not even used. For some reason the Ant and ADT builds did not care about this attribute, but the Gradle :processDebugResources
task barfed with a not very helpful error message.
Removing xmlns:custom="http://schemas.android.com/apk/res-auto"
fixed it.
Versions used: Gradle 1.10 and 'com.android.tools.build:gradle:0.8.0'
Had the same issue. Mine was due to Crashlytics. Their automatically generated xml file has invalid name spaces.
Read all my answer first : it seems that this error is due to another compilation problem...
Initially, to deal with this error, I updated my code like this:
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
...
</resources>
into this code:
<resources ignore="MissingTranslation">
...
</resources>
And it works for me at the beginning...but I had another compilation error due tu gradle configuration...and now that these compilation errors are corrected, my previous update does not work anymore. I had to add the namespace to generate the APK file.
So , be sure to correct all the compilation errors first before to deal with this error...
mine was close to all of this. Someone had declared a name space inside of a strings tag. Something like this:
<string name="google_play" xmlns:tools="http://schemas.android.com/tools" >Google Play</string>
i obviously removed the ns reference as it should not be there like that. I had to search the entire codebase for the word "xmlns:" and look for one that was in the wrong place. Took a while.
I faced this issue while syncing with Firebase. It was due to analytics package dependency in the app level gradle. It was solved by commenting/ removing
implementation 'com.google.firebase:firebase-analytics'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With