在将项目导入到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'
}
版权声明:本文为博主原创文章,未经博主允许不得转载。