首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Studio 中 assets 文件夾路徑錯誤導致 assetManager.open 讀取失敗的解決方案

     編輯:程式設計綜合問答

在 Android 開發過程中,使用 assetManager.open("province_data.xml") 讀取 assets 目錄下的資源文件時,若遇到「找不到文件」或報錯的情況,往往是因為 assets 文件夾的放置位置不正確。這在從 Eclipse 遷移到 Android Studio、或初次使用 Android Studio 時尤為常見。

問題現象

代碼執行到 assetManager.open("province_data.xml") 時拋出異常,提示文件不存在。明明已在專案中建立了 assets 文件夾並放入文件,為何仍讀取失敗?

報錯截圖

根本原因

Android Studio 的專案結構與舊版 Eclipse (ADT) 截然不同。在 Android Studio 中,assets 文件夾必須放置在 src/main/assets/ 目錄下,而非專案根目錄或 src/ 直屬目錄。若放置位置錯誤,Gradle 構建時不會將其打包進 APK,導致運行時找不到資源。

解決步驟

  1. 在 Project 視圖中,右鍵點擊 main 目錄(路徑通常為 app/src/main)。
  2. 選擇 New > Folder > Assets Folder。
  3. 確認 Target Source Set 為 main,點擊 Finish。
  4. 將資源文件(如 province_data.xml)拷貝至該目錄下。
  5. 重新構建專案(Build > Rebuild Project)。

正確的 assets 目錄結構

驗證方法

構建成功後,可在 build/intermediates/merged_assets/debug/out/ 目錄下確認文件是否已正確打包。此時再運行 assetManager.open() 即可正常讀取。

補充提示

  • assets 目錄下的文件名區分大小寫,且不支持子目錄遞歸訪問(需包含完整相對路徑)。
  • 若需存放原始資源(如 JSON、字體、HTML),assets 是合適選擇;若為圖片、佈局等,建議使用 res/ 目錄以獲得資源 ID 優化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved