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

来源:互联网 发布:sop8单片机 编辑:程序博客网 时间:2024/06/05 06:53


一、非法字符: '\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】

3 0