在將項目導入到Studio時提示 毛病:非法字符: 'ufeff',編譯器沒報錯但編譯出錯,比較頭疼,后來發現緣由是由于沒有采取UTF⑻無BOM模式,用 Notepad++ 或其他編輯器將文件打開,更換下格式就能夠解決:
注:Eclipse可以智能的把有BOM文件轉為無BOM文件,目前Andorid Studio未做處理。下面也簡單的說下甚么是BOM(Byte-Order Mark),可以理解為字節順序標記,是位于碼點U+FEFF的統1碼字符的名稱。當以 UTF⑴6 或 UTF⑶2 來將UCS/統1碼字符所組成的字串編碼時,這個字符被用來標示其字節序。常被用來當作標示文件是以UTF⑻、UTF⑴6或UTF⑶2編碼的記號。通俗點理解成字節順序標記,傳輸標識就好了。更多信息可了解官網:http://www.unicode.org/faq/utf_bom.html#BOM
布局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 便可。以下圖:
3、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 部份增加1段配置:
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
版權聲明:本文為博主原創文章,未經博主允許不得轉載。