一、非法字符: '\ufeff'
在將項目導入到Studio時提示 錯誤:非法字符: '\ufeff',編譯器沒報錯但編譯出錯,比較頭疼,後來發現原因是因爲沒有采用UTF-8無BOM模式,用 Notepad++ 或其他編輯器將文件打開,更換下格式就可以解決:
注:Eclipse可以智能的把有BOM文件轉爲無BOM文件,目前Andorid Studio未做處理。下面也簡單的說下什麼是BOM(Byte-Order Mark),可以理解爲字節順序標記,是位於碼點U+FEFF的統一碼字符的名稱。當以 UTF-16 或 UTF-32 來將UCS/統一碼字符所組成的字串編碼時,這個字符被用來標示其字節序。常被用來當做標示文件是以UTF-8、UTF-16或UTF-32編碼的記號。通俗點理解成字節順序標記,傳輸標識就行了。更多信息可瞭解官網:http://www.unicode.org/faq/utf_bom.html#BOM
二、Gradle不能自動查找xml自定屬性問題
佈局xml文件中出現Gradle不能自動查找自定義屬性:
In Gradle projects, always use http://schemas.android.com/apk/res-auto for custom attributes
將自定義屬性 http://schemas.android.com/apk/res/com.xxx.xxx 修改爲:http://schemas.android.com/apk/res-auto 即可。如下圖:
三、Studio出現如下錯誤解決方案
Error:duplicate files during packaging of APK ........
Path in archive: META-INF/LICENSE.txt
exclude 'META-INF/NOTICE.txt'
You can ignore those files in your build.gradle:
android {
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
}
Error:Execution failed for task ':app:packageDebug'.
> Duplicate files copied in APK META-INF/LICENSE.txt
File 1: /StudioProject/app/libs/xxx.jar
File 2: /StudioProject/app/libs/xxx.jar
因爲多個jar包裏包含了同樣的文件(NOTICE.txt),導致打包時因爲擔心相互覆蓋問題而提示出錯。
嘗試下在 app 下的 build.gradle 中的 android 部分增加一段配置:
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
【轉載註明gao_chun的Blog:http://blog.csdn.net/gao_chun/article/details/49329729】