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