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

Android R.java 找不到/報錯:清理專案、重新產生 R 檔案解決流程

     編輯:程式設計疑難解答

Android 專案建置時出現 `R cannot be resolved` 或 `R.java` 內容異常,通常是資源檔(XML/圖片/字串)有錯誤導致 `aapt` 無法產生 `R.java`,或是 `gen/` 目錄下舊檔案殘留。本文提供標準排查與修復流程。

常見錯誤現象

  • Java 代碼中 `R.id.xxx`、`R.layout.xxx` 紅線,提示 `R cannot be resolved to a variable`
  • `gen/` 目錄下沒有 `R.java`,或 `R.java` 內容為空/不完整
  • Console 輸出 `error: Error: No resource found that matches the given name`

快速修復三步驟

  1. 清理專案:Eclipse/ADT → `Project` → `Clean...` → 勾選專案 → `OK`
  2. 檢查資源錯誤:`Problems` 視圖 / `Console` 紅字,修復所有 XML 語法錯誤、圖片檔案損壞、資源命名不合法(如大寫、特殊字元)
  3. 刪除 gen/ 重建:專案右鍵 → `Android Tools` → `Fix Project Properties`,或手動刪除 `gen/` 目錄後再 `Clean`

資源檔常見錯誤清單

錯誤類型例子修正
XML 語法錯誤漏關標籤、屬性值未加引號用編輯器語法高亮/格式化檢查
檔名/資源名非法`res/drawable/MyImage.png`、`@string/app_name` 含大寫全小寫、底線、數字:`my_image.png`
圖片損壞/格式不支援`.jpg` 實為 PNG、超過 16MP重新匯出標準 PNG/WebP,尺寸適中
重複資源 ID同名檔案在不同 density 目錄確保同名檔案內容一致或重新命名
AndroidManifest.xml 錯誤package 名稱與 Java 套件不符核對 `package="com.example.app"`

進階:命令列強制重新產生 R.java

# 在專案根目錄
ant clean
# 或 Gradle
./gradlew clean assembleDebug

# 查看 aapt 輸出
aapt package -f -m -J gen -M AndroidManifest.xml -S res -I android.jar

Android Studio / Gradle 專案對應操作

  • `Build` → `Clean Project`
  • `Build` → `Rebuild Project`
  • `File` → `Invalidate Caches / Restart` → `Invalidate and Restart`
  • 檢查 `build.gradle` 中 `compileSdkVersion`、`buildToolsVersion` 與 SDK Manager 安裝版本一致

避坑提醒

  • **不要手動編輯 `R.java`** —— 它是自動產生的,任何修改下次建置會被覆蓋
  • 資源檔修改後,**務必 Save All (Ctrl+Shift+S)** 再 Clean
  • 若專案引用 Library Module,確保 Library 也 `Clean` 且無資源錯誤
  • 大量新增圖片時,分批建置,避免 `aapt` 記憶體不足

遵循「Clean → 修資源錯 → 刪 gen → Rebuild」標準流程,99% 的 `R.java` 找不到/報錯問題可在 5 分鐘內解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved