{"ok":true,"items":[{"id":"res-invalid-color","severity":"error","category":"resource","title":"colors.xml 中存在非法颜色值（Invalid <color>）","summary":"资源合并任务 :app:mergeReleaseResources 失败：AAPT2 编译 values 资源时，某个 <color> 取值不是合法颜色，无法提取资源（Can not extract resource from ParsedResource）。","causes":["颜色值位数错误：写成了 3/4/5/7 位十六进制（合法为 #RGB、#ARGB、#RRGGBB、#AARRGGBB）。","颜色值包含非法字符，如 #GGGGGG、空格、全角字符、中文分号或逗号结尾。","把 drawable/selector/gradient 等非纯色资源写进了 <color> 标签，或引用了不存在的资源（@color/xxx 未定义）。","同一 values 文件中重复定义同名 color，或引用了被覆盖/删除的颜色。","IDE 格式化或合并代码时引入了不可见字符（零宽空格、BOM）在颜色值前后。"],"fixes":["打开报错文件（日志中的 app/src/main/res/values/colors.xml:36:4），逐字符检查第 36 行 <color> 的取值。","把颜色统一改为 6 位 #RRGGBB；需要透明度时用 8 位 #AARRGGBB（前两位是 Alpha，不是后两位）。","删除颜色值前后不可见字符与空格；用正则 ^#[0-9a-fA-F]{3,4}$|^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{8}$ 校验全部条目。","渐变/形状请放到 res/drawable/*.xml 并用 <item android:drawable> 引用，不要写进 <color>。","修正后执行 ./gradlew clean :app:mergeReleaseResources 验证，再重新打包 APK。"]},{"id":"res-merge-generic","severity":"error","category":"resource","title":"资源合并/编译失败（mergeResources）","summary":"AAPT2 编译合并 values 资源失败，通常是某个 values 文件（colors/strings/styles/dimens）中存在语法非法的条目。","causes":["values XML 中出现非法标签、未闭合引号、非法转义或实体字符。","style 中引用了不存在的 parent 或属性（attr 未定义）。","多个 library 的同名资源冲突且未用 tools:replace 处理。"],"fixes":["定位日志中报错的 values 文件与行号，修正该条目语法。","执行 ./gradlew :app:mergeReleaseResources --info 获取更细的失败明细。","清理增量缓存后重试：./gradlew clean 或删除 app/build/intermediates/incremental 目录。"]},{"id":"duplicate-classes","severity":"error","category":"dependency","title":"依赖冲突：出现重复类（Duplicate classes）","summary":"多个依赖引入了同一个类，通常是同一库的不同版本（如 com.google.guava:guava 同时存在 20 与 31）。","causes":["传递依赖版本不一致，Gradle 未收敛到同一版本。","本地 module 与远程 aar/jar 重复打包。"],"fixes":["运行 ./gradlew app:dependencies --configuration releaseRuntimeClasspath 查看冲突链。","在对应 configuration 中用 exclude 或 constraints 强制统一版本。"]},{"id":"manifest-merge-failed","severity":"error","category":"manifest","title":"AndroidManifest 合并失败（Manifest merger failed）","summary":"主清单与库清单合并时属性冲突（applicationId、minSdkVersion、uses-permission 等）。","causes":["库声明了更高 minSdkVersion / targetSdkVersion。","android:label、icon 等属性在 library 与 app 间冲突。"],"fixes":["按日志提示使用 tools:replace=\"...\" 显式覆盖冲突属性。","统一 minSdkVersion，或在 manifest 中加入 <uses-sdk tools:overrideLibrary=\"...\"/>。"]},{"id":"lint-vital-failed","severity":"error","category":"lint","title":"Lint 致命错误阻断打包（lintVitalRelease）","summary":"release 构建执行 lintVital 检查时发现 fatal 级别问题，构建被中止。","causes":["缺少 contentDescription、错误的资源引用等 fatal 规则被触发。"],"fixes":["运行 ./gradlew :app:lintRelease 查看 lint 报告并逐条修复。","紧急情况下可在 build.gradle 中设置 lint { checkReleaseBuilds false }（不建议长期关闭）。"]},{"id":"r8-minify-failed","severity":"error","category":"minify","title":"R8/ProGuard 混淆压缩失败","summary":"混淆压缩阶段找不到被反射/序列化引用的类，或 keep 规则不完整。","causes":["反射调用的类未写入 keep 规则。","依赖库自带的 consumer rules 与项目规则冲突。"],"fixes":["按报错类名在 proguard-rules.pro 中添加 -keep class xxx { *; }。","临时验证：android { buildTypes { release { minifyEnabled false } } } 确认是否混淆引起。"]},{"id":"java-compile-failed","severity":"error","category":"compile","title":"Java/Kotlin 源码编译错误","summary":"源码编译失败：存在语法错误、缺失 import、类型不匹配或 API版本不兼容。","causes":["引用了不存在的类/方法（can not find symbol）。","调用了高于 compileSdkVersion 的 API。"],"fixes":["按日志中的 文件:行号 与 symbol 定位源码并修正。","检查 import 与依赖是否齐全，必要时提升 compileSdkVersion。"]},{"id":"gradle-resolve-failed","severity":"error","category":"dependency","title":"Gradle 依赖下载/解析失败","summary":"无法从仓库拉取依赖：网络问题、仓库地址失效或版本号不存在。","causes":["构建环境无法访问 mavenCentral/google 仓库。","声明的版本号拼写错误或已被仓库移除。"],"fixes":["用 ./gradlew dependencies --refresh-dependencies 重试并检查网络。","核对 build.gradle 中版本号；必要时配置镜像仓库。"]},{"id":"signing-config-missing","severity":"error","category":"signing","title":"缺少签名配置/keystore（release 无法签名）","summary":"release 构建找不到 keystore 或 signingConfigs 未配置，APK 无法签名。","causes":["keystore 文件路径不存在或密码错误。","CI 环境未注入 signing 相关环境变量。"],"fixes":["确认 keystore 文件随仓库/构建环境存在，并核对 storePassword/keyPassword。","本地调试可先用 ./gradlew assembleDebug；或配置 signingConfigs.release 后再打 release。"]},{"id":"gradle-oom-daemon","severity":"error","category":"environment","title":"构建内存不足 / Gradle Daemon 异常","summary":"Gradle 进程内存不足或 Daemon 中断，导致任务执行失败。","causes":["构建机内存不足，jvmargs 未调大。","同时运行多个构建任务抢占资源。"],"fixes":["在 gradle.properties 中设置 org.gradle.jvmargs=-Xmx2048m（或更大）。","执行 ./gradlew --stop 停掉残留 Daemon 后重新构建。"]}]}