布局根標簽已宣告 `xmlns:app="https://schemas.android.com/apk/res-auto"`,但輸入 `app:` 無提示,第三方庫屬性 (如 `app:layout_percent`) 無效。
**庫未正確作為依賴接入**,導致 Gradle 未合併其 `attrs.xml` 到 `R.attr`,AS 無法解析自定義屬性。
// settings.gradle 或 build.gradle (Project)
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOSITORIES)
repositories {
google()
mavenCentral()
flatDir { dirs 'libs' } // 關鍵:聲明本地平目錄倉庫
}
}
// app/build.gradle
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
// 關鍵:按文件名引用 AAR (不含擴展名)
implementation(name: 'percent-support-extends-1.0.1', ext: 'aar')
// 或通配符 (Gradle 7.0+)
// implementation fileTree(dir: 'libs', include: ['*.aar'])
}
dependencies {
implementation project(':percent-support-extends') // 模塊名 = settings.gradle 中 include 的名字
}
include ':app', ':percent-support-extends'
| 坑點 | 現象 | 解決 |
|---|---|---|
| 未加 `flatDir` | AAR 找不到 | Project build.gradle 加 `flatDir { dirs 'libs' }` |
| AAR 文件名含版本號 | `implementation(name: 'lib-1.0.1', ext: 'aar')` 需精確匹配 | 改名 `lib.aar` 或精確寫全名 |
| Module 導入後包名衝突 | 編譯錯誤 duplicate class | 確保庫模塊 `applicationId` 不同或不設 |
| 庫需傳遞依賴 | 缺少 support-v4 等 | 庫 `build.gradle` 用 `api` 而非 `implementation` 導出依賴 |
原最佳回答給出兩種方式代碼片段,上文補充 `flatDir` 必須性、Gradle 7+ 寫法、驗證步驟、常見坑點表,可直接落地解決。