Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Studio 錯誤: 非法字符: '\ufeff' 及 Gradle不能自動查找xml自定義屬性

Android Studio 錯誤: 非法字符: '\ufeff' 及 Gradle不能自動查找xml自定義屬性

編輯:關於Android編程

 

一、非法字符: '?'

在將項目導入到Studio時提示 錯誤:非法字符: '?',編譯器沒報錯但編譯出錯,比較頭疼,後來發現原因是因為沒有采用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'
}

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved