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

Android AppCompat v7 導致「hierarchy inconsistent」編譯錯誤修復

     編輯:程式設計綜合問答

錯誤現象

The hierarchy of the type TestActivity is inconsistent
The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved

根因

專案僅引用了 android-support-v7-appcompat.jar,未將 appcompat 作為 Library Module 導入。資源文件、R.java、內部類(如 TaskStackBuilder$SupportParentable)未被正確打包,導致編譯器找不到符號。

標準修復流程

  1. Eclipse ADT:
    • File → Import → Existing Android Code Into Workspace → 選中 <sdk>/extras/android/support/v7/appcompat。
    • 勾選「Copy projects into workspace」,Finish。
    • 右鍵專案 → Properties → Android → Library → Add → 選中 appcompat。
  2. Android Studio / Gradle(現代專案):
    dependencies {
        implementation 'com.android.support:appcompat-v7:28.0.0' // 或 androidx 版本
    }
  3. 清理重建:Project → Clean → Build Automatically。

常見誤區

錯誤做法後果
只複製 jar 到 libs資源丟失、R 衝突、內部類找不到
引用 v4 支持庫但不引用 v7v7 依賴 v4,版本不一致導致類加載失敗
混用 AndroidX 與 Support Library類名衝突、編譯失敗

遷移建議

新專案請直接使用 AndroidX(androidx.appcompat:appcompat:1.6.1),老專案可通過 Refactor → Migrate to AndroidX 一鍵遷移。

總結

AppCompat v7 必須作為 Library Module 依賴,而非單純 Jar 引用。遵循官方接入流程,清理緩存重建即可消除「hierarchy inconsistent」。

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