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

Android Manifest @string/app_name 資源未找到錯誤排查

     編輯:程式設計綜合問答

錯誤現象

Error: No resource found that matches the given name 
(at 'label' with value '@string/app_name')

在 AndroidManifest.xml 的 application 和 activity 標籤中引用 @string/app_name 報錯。

直接原因

res/values/strings.xml 中缺少 app_name 字串資源定義,或文件結構錯誤導致資源編譯失敗。

標準修正

<!-- res/values/strings.xml -->
<resources>
    <string name="app_name">My Application</string>
    <!-- 其他字串 -->
</resources>

進階排查清單(若已定義仍報錯)

  1. 文件位置錯誤:確認在 res/values/ 而非 res/values-v21/ 等限定資源目錄(除非故意按版本區分)。
  2. XML 格式錯誤:檢查 strings.xml 是否有未閉合標籤、特殊字符未轉義(& → &amp;)、編碼非 UTF-8。
  3. 資源目錄命名:目錄必須為 values,不能是 value、vals 等。
  4. Gradle 快取:執行 ./gradlew clean 或 AS File → Invalidate Caches / Restart。
  5. 庫模組依賴:若為 Library Module,宿主 App 需自行定義 app_name,庫不應強依賴。
  6. 合併衝突:多模組合併 Manifest 時,tools:replace="android:label" 可能導致資源引用丟失。

快速驗證步驟

# 終端執行
./gradlew clean assembleDebug
# 或 AS: Build → Clean Project → Rebuild Project

若編譯通過,說明資源已正確識別。

最佳實踐:統一管理應用名稱

<!-- strings.xml -->
<string name="app_name" translatable="false">MyApp</string>
<!-- translatable="false" 避免翻譯工具誤改 -->

在 build.gradle 中同步:

android {
    defaultConfig {
        applicationId "com.example.myapp"
        // 可選:從 strings.xml 讀取 (需自定義任務)
    }
}

結語

@string/app_name 找不到資源 99% 是 **strings.xml 缺少對應定義** 或 **XML 格式錯誤導致資源編譯失敗**。補全定義、Clean Rebuild 即可解決。養成在 strings.xml 集中管理所有可見字串的習慣,利於國際化與維護。

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