2013-10-22 18 views
11

在將項目轉換爲Android構建系統的過程中,每當我嘗試編譯時都會收到此錯誤。Android Gradle合併Values.xml使用錯誤的名稱空間

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

合併的values.xml文件包含以下根元素:

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

這是什麼錯誤的原因和如何能解決嗎?

+0

沒有你找到了答案? – Edison

+0

我有同樣的問題 – auxten

+0

你知道嗎? 您發佈的內容後是否有更多錯誤消息? – friederbluemle

回答

15

我剛剛花了大約2小時的時間來挖掘我們的Gradle構建中的Git commit。該提交包含超過200個修改後的文件,修改後的行數超過4000。你可以把它想象多少樂趣了;)

總之,這裏是對我們造成的這個不起眼的搖籃錯誤:用xmlns:custom屬性有些款式是在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> 

正如你所看到的甚至沒有使用custom命名空間。出於某種原因,Ant和ADT構建不關心這個屬性,但Gradle :processDebugResources任務禁止使用不太有用的錯誤消息。

刪除xmlns:custom="http://schemas.android.com/apk/res-auto"修復它。使用

版本:1.10搖籃和'com.android.tools.build:gradle:0.8.0'

+0

我也試過這個,但使用'cordova構建android'意味着values.xml get被覆蓋的構建與相同的自定義ns :( – Jacksonkr

+0

我有當我將基於Eclipse的項目(ANT)移植到Android Studio(Gradle)時出現同樣的問題。問題是由於Crashlytics具有相同格式的