You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android13独立SystemUI项目引入Setting.aar包遇Zip重复条目错误求助

解决Android 13独立SystemUI引入Setting.aar时的WifiTrackerLib类重复构建错误

错误信息:

转换WifiTrackerLib-.aar (:WifiTrackerLib:)以匹配属性{artifactType=android-classes-jar, org.gradle.status=integration, org.gradle.usage=java-api}失败。
      > AarToClassTransform执行失败: /Users/****/.gradle/caches/transforms-3/fb27335a3bda13f34761986f27530b4d/transformed/jetified-WifiTrackerLib.aar。
         > Zip文件'/Users/***/.gradle/caches/transforms-3/857f78488989ec604802c3978f1d53b6/transformed/jetified-WifiTrackerLib-api.jar'已包含条目'com/android/wifitrackerlib/R$array.class',无法覆盖

问题原因:

Setting.aar依赖的WifiTrackerLib模块,与当前SystemUI项目中已依赖的WifiTrackerLib存在重复的资源生成类(R$array.class),Gradle在合并依赖时检测到冲突,导致构建失败。

解决方案:

  • 排查并排除重复依赖
    先通过命令查看项目依赖树,明确重复依赖的来源:

    ./gradlew dependencies
    

    找到WifiTrackerLib的重复引入后,在Setting.aar的依赖配置中排除该模块:

    implementation(name: 'Setting', ext: 'aar') {
        // 根据依赖树的实际分组和模块名调整
        exclude group: 'com.android.wifitrackerlib', module: 'WifiTrackerLib'
        // 如果是本地模块依赖,替换为 exclude module: ':WifiTrackerLib'
    }
    
  • 使用packagingOptions处理冲突类
    如果无法排除依赖,可以在模块的build.gradle中配置packagingOptions,让Gradle优先选择其中一个版本的类:

    android {
        packagingOptions {
            pickFirst 'com/android/wifitrackerlib/R$array.class'
        }
    }
    

    注意:此方法可能会导致部分资源无法正常访问,仅在排除依赖不可行时使用。

  • 清理Gradle缓存并重新构建
    执行以下命令清理缓存并重新构建,避免旧缓存残留导致的问题:

    ./gradlew clean build
    

    必要时可以手动删除.gradle/caches目录下的相关缓存文件。

内容的提问来源于stack exchange,提问作者seven.cheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:33:38