程序员人生 网站导航

Android Studio 错误: 非法字符: 'ufeff' 及 Gradle不能自动查找xml自定义属性

栏目:综合技术时间:2016-02-28 09:57:08


1、非法字符: 'ufeff'

在将项目导入到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


2、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 便可。以下图:




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'
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐