與元素類型 “item” 相關聯的 “name” 屬性值不能包含"<” 字符解決辦法

Android構建時報錯:

app:lintVitalRelease[Fatal Error] :3:214: 與元素類型 “item” 相關聯的 “name” 屬性值不能包含 ‘<’ 字符。

Could not read /Users/panxin/Library/Android/sdk/platform-tools/api/annotations.zip

java.io.IOException: Could not parse XML from android/accounts/annotations.xml

原因:sdk下/platform-tools/api/annotations.zip這個文件裏的xml文件不規範造成的。
 

annotations.xml 這個文件報錯,那麼就打開這個文件看一下。

annotations.zip 解壓之後得到android,根據報錯信息找到報錯的文件。

發現: 
  <item name="android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler)">
 

比如修改後的一段:

  <item name="android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback&lt;android.os.Bundle&gt;, android.os.Handler)">
    <annotation name="androidx.annotation.RequiresPermission">

看到了吧 ,<>  裏面帶有 <>.  這個在xml裏是不允許的。

自己修改:1、用記事本打開報錯的文件(看報錯信息android/accounts/annotations.xml),並且把標籤內的 ‘<’ 和 ‘>’ 字符分別替換成 "&lt;” 和 “&gt;”

2、修改完之後,保證 <>,裏沒有<>後保存,替換annotations.zip裏報錯的文件,回到項目再次編譯。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章