2013-10-22 10 views
11

Bei der Umwandlung eines Projekts in das Android-Build-System bekomme ich diesen Fehler, wenn ich versuche, zu kompilieren.Android Gradle verschmolzen Values.xml verwendet falschen Namespace

Gradle: Error parsing XML: prefix must not be bound to one of the reserved namespace names

Die fusionierte values.xml-Datei enthält das folgende Stammelement:

<resources xmlns:ns1="http://www.w3.org/2000/xmlns/">

Was ist die Ursache für diesen Fehler und wie sie behoben werden kann?

+0

haben Sie die Antwort dafür gefunden? – Edison

+0

Ich habe die gleiche Frage – auxten

+0

Haben Sie das herausgefunden? Gibt es nach dem von Ihnen geposteten Fehler mehr Fehlermeldungen? – friederbluemle

Antwort

15

Ich habe gerade 2 Stunden damit verbracht, den Git-Commit zu graben, der unseren Gradle-Build durchbrochen hat. Dieses Commit enthielt über 200 geänderte Dateien mit mehr als 4000 modifizierten Zeilen. Sie können sich vorstellen, wie viel Spaß es war;)

Wie auch immer, hier ist das, was für uns, diese obskure Gradle Fehler verursacht:

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

Wie Sie das sehen: Einige Arten mit einem xmlns:custom Attribut in res/values/styles.xml definiert wurden custom Namespace wird nicht einmal verwendet. Aus irgendeinem Grund kümmerte sich die Ant- und ADT-Builds nicht um dieses Attribut, aber die Gradle :processDebugResources Task mit einer nicht sehr hilfreiche Fehlermeldung barfed.

Entfernen xmlns:custom="http://schemas.android.com/apk/res-auto" behoben.

Versionen verwendet: Gradle 1.10 und 'com.android.tools.build:gradle:0.8.0'

+0

Ich versuchte dies auch, aber die Verwendung von 'Cordova Build android' bedeutet, dass die values.xml auf Build mit dem gleichen benutzerdefinierten ns überschrieben werden :( – Jacksonkr

+0

Ich hatte Gleiches Problem, als ich Eclipse-basiertes Projekt (ANT) auf Android Studio (Gradle) portierte.Das Problem war auf Crashlytics zurückzuführen, das das gleiche Format von