Android問題集錦(十三) - Error:Tag attribute package has invalid character '"'.

問題描述:
在編譯運行時報mainfest文件清單中有無效的字符
這裏寫圖片描述
從錯誤日誌提示無效字符是在聲明Activity組件出錯了,出現了 ” 無效的字符,於是開始檢查manifest文件中是否還有 ” 無效字符,按理如果有無效字符的話,manifest文件在編譯期就會報紅提示錯誤,類似這樣
這裏寫圖片描述
但實際並沒有這樣的錯誤提示,說明Activity在編譯期間聲明是沒錯的,那只有在構建期間出現了無效字符的錯誤,最後把目標放在package與applicationId之間的關係,由於在項目中productFlavors{} 定義了applicationId。

 productFlavors {

        laiXiu{
            applicationId LAIXIU_APPLICATION_ID

        }
    }

LAIXIU_APPLICATION_ID在gradle.properties文件定義如下:

LAIXIU_APPLICATION_ID="com.xxx.xxx"

問題就是出現這裏“com.xxx.xxx”有個雙引號,在構造過程中會把package=“”com.xxx.xxx “”,就是報錯無效字符。
這裏寫圖片描述

望周知:儘管您的項目可以設置package屬性不等於applicationId,然並卵。構建工具在最後構建的時候將會複製Application ID並設置爲您應用程序唯一的package屬性的值。所以,如果您在構建成功之後檢查AndroidManifest.xml文件,請不要驚訝package屬性發生變化。在Android平臺和Google應用商店,package屬性纔是真正作爲您應用程序唯身份憑證。所以,一旦使用原始值構建(使用命名空間的R類解析manifest中的組件),構建工具將會丟棄package屬性的值,並且使用Application ID替換。

解決方案:
把LAIXIU_APPLICATION_ID的值去除雙引號即可。

LAIXIU_APPLICATION_ID=com.xxx.xxx

感謝:
https://blog.csdn.net/qq_17250009/article/details/53896168

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