Android 日常报错之 Android dependency 'com.android.support:support-v4' has different version

本文详细阐述了在Android开发中遇到的com.android.support:support-v4库版本不一致问题,提供了检查依赖版本和强制统一版本的具体解决方案。同时,分享了一种解决AAPT2异常错误的实践经验,指出代码中调用已废弃方法可能导致该错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错截图

Caused by: java.lang.RuntimeException: Android dependency 'com.android.support:support-v4' has different version for the compile (26.1.0) and runtime (27.1.0) classpath. You should manually set the same version via DependencyResolution
  • 问题描述:多个模块引用了不同版本的com.android.support:support-v4,需要我们手动统一版本
  • 查看各版本的Library依赖详情
./gradlew :app:dependencies
./gradlew -q dependencies <module-name>:dependencies --configuration compile
  • 解决办法
android {
    configurations.all {
        resolutionStrategy.force "com.android.support:support-v4:27.1.0"
    }
}
  • 如果rebuild之后还有如下错误:
Caused by: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

疯狂在网上找答案,有无数种解答,我的报错原因是自己代码的问题,依赖库进行了升级,在做implement的时候多了一个已经被移除的方法,将改方法的实现删除即可。

PS D:\Hab_znaisc_v4_java\deepseekdemo-0704> mvn clean install -DskipTests [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for com.huaanbao:framework:jar:1.0.0-SNAPSHOT [WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.projectlombok:lombok:jar -> duplicate declaration of version 1.18.36 @ com.huaanbao:framework:${revision}, D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\pom.xml, line 290, column 21 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. [WARNING] [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] contract-intelligence [pom] [INFO] framework [jar] [INFO] admin [jar] [INFO] types [jar] [INFO] biz [jar] [INFO] start [jar] [INFO] common-dependencies [pom] [INFO] common [pom] [INFO] common-generator [jar] [INFO] [INFO] -----------------------< com.huaanbao:contract >------------------------ [INFO] Building contract-intelligence 1.0.0-SNAPSHOT [1/9] [INFO] from pom.xml [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ contract --- [INFO] [INFO] --- install:3.1.2:install (default-install) @ contract --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\contract\1.0.0-SNAPSHOT\contract-1.0.0-SNAPSHOT.pom [INFO] [INFO] -----------------------< com.huaanbao:framework >----------------------- [INFO] Building framework 1.0.0-SNAPSHOT [2/9] [INFO] from framework\pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [WARNING] 1 problem was encountered while building the effective model for org.javassist:javassist:jar:3.21.0-GA during dependency collection step for project (use -X to see details) [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ framework --- [INFO] Deleting D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\target [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ framework --- [INFO] Copying 43 resources from src\main\resources to target\classes [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\src\main\resources\dev [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\src\main\resources\dev [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\src\main\resources\dev [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ framework --- [INFO] Recompiling the module because of changed source code. [INFO] Compiling 361 source files with javac [debug target 17] to target\classes [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/helpdoc/domain/form/HelpDocUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/dict/domain/form/DictKeyUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/config/domain/ConfigUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/heartbeat/domain/HeartBeatRecordQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/dict/domain/form/DictValueUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/securityprotect/domain/LoginFailQueryForm.java:[17,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/feedback/domain/FeedbackQueryForm.java:[17,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/file/domain/form/FileQueryForm.java:[19,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/loginlog/domain/LoginLogQueryForm.java:[14,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/helpdoc/domain/form/HelpDocQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/codegenerator/domain/form/TableQueryForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/changelog/domain/form/ChangeLogQueryForm.java:[20,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/job/api/domain/SmartJobLogQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/operatelog/domain/OperateLogQueryForm.java:[14,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/config/domain/ConfigQueryForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/helpdoc/domain/form/HelpDocCatalogUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/dict/domain/form/DictKeyQueryForm.java:[14,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/helpdoc/domain/form/HelpDocViewRecordQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/message/domain/MessageQueryForm.java:[19,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/job/api/domain/SmartJobQueryForm.java:[17,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/dict/domain/form/DictValueQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/datatracer/domain/form/DataTracerQueryForm.java:[18,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/serialnumber/domain/SerialNumberRecordQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/config/RestTemplateConfig.java:[75,12] org.springframework.http.client 中的 org.springframework.http.client.OkHttp3ClientHttpRequestFactory 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/config/RestTemplateConfig.java:[75,12] org.springframework.http.client 中的 org.springframework.http.client.OkHttp3ClientHttpRequestFactory 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/config/RestTemplateConfig.java:[75,12] org.springframework.http.client 中的 org.springframework.http.client.OkHttp3ClientHttpRequestFactory 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/config/RestTemplateConfig.java:[75,12] org.springframework.http.client 中的 org.springframework.http.client.OkHttp3ClientHttpRequestFactory 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/config/RestTemplateConfig.java:[75,12] org.springframework.http.client 中的 org.springframework.http.client.OkHttp3ClientHttpRequestFactory 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/config/RestTemplateConfig.java:[76,20] org.springframework.http.client 中的 org.springframework.http.client.OkHttp3ClientHttpRequestFactory 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/module/support/serialnumber/service/impl/SerialNumberInternService.java:[53,9] 尝试在基于值的类的实例上同步 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/common/util/SmartBeanUtil.java: 某些输入文件使用或覆盖了已过时的 API。 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/common/util/SmartBeanUtil.java: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/common/util/ExcelUtil.java: 某些输入文件使用了未经检查或不安全的操作。 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/framework/src/main/java/com/huaanbao/framework/common/util/ExcelUtil.java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ framework --- [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\src\test\resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ framework --- [INFO] No sources to compile [INFO] [INFO] --- surefire:3.2.5:test (default-test) @ framework --- [INFO] Tests are skipped. [INFO] [INFO] --- jar:3.4.1:jar (default-jar) @ framework --- [INFO] Building jar: D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\target\framework-dev-1.0.0-SNAPSHOT.jar [INFO] [INFO] --- install:3.1.2:install (default-install) @ framework --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\framework\1.0.0-SNAPSHOT\framework-1.0.0-SNAPSHOT.pom [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\framework\target\framework-dev-1.0.0-SNAPSHOT.jar to D:\software\apache-maven-3.6.0\repository\com\huaanbao\framework\1.0.0-SNAPSHOT\framework-1.0.0-SNAPSHOT.jar [INFO] [INFO] -------------------------< com.huaanbao:admin >------------------------- [INFO] Building admin 1.0.0-SNAPSHOT [3/9] [INFO] from admin\pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ admin --- [INFO] Deleting D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\target [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ admin --- [INFO] Copying 15 resources from src\main\resources to target\classes [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\src\main\resources\dev [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\src\main\resources\dev [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\src\main\resources\dev [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ admin --- [INFO] Recompiling the module because of changed dependency. [INFO] Compiling 201 source files with javac [debug target 17] to target\classes [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeQueryForm.java:[17,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/goods/domain/form/GoodsUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/notice/domain/vo/NoticeUpdateFormVO.java:[17,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/menu/domain/form/MenuAddForm.java:[13,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/bank/domain/BankQueryForm.java:[19,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/category/domain/form/CategoryUpdateForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/menu/domain/form/MenuUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/notice/domain/form/NoticeUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/notice/domain/form/NoticeViewRecordQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/position/domain/form/PositionUpdateForm.java:[17,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/bank/domain/BankUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/login/domain/LoginForm.java:[20,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/invoice/domain/InvoiceUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/login/domain/LoginResultVO.java:[17,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/notice/domain/form/NoticeEmployeeQueryForm.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/employee/domain/form/EmployeeQueryForm.java:[20,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/role/domain/vo/RoleSelectedVO.java:[13,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/goods/domain/form/GoodsQueryForm.java:[20,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/employee/domain/form/EmployeeUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/department/domain/form/DepartmentUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/enterprise/domain/form/EnterpriseUpdateForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/invoice/domain/InvoiceQueryForm.java:[17,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/menu/domain/vo/MenuTreeVO.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/position/domain/form/PositionQueryForm.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/notice/domain/vo/NoticeEmployeeVO.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/role/domain/form/RoleQueryForm.java:[14,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/department/domain/vo/DepartmentTreeVO.java:[15,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/menu/domain/vo/MenuVO.java:[16,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/role/domain/form/RoleUpdateForm.java:[14,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/role/domain/form/RoleEmployeeQueryForm.java:[14,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/business/oa/enterprise/domain/form/EnterpriseQueryForm.java:[19,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/position/service/PositionService.java: D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\src\main\java\com\huaanbao\admin\module\system\position\service\PositionService.java使用或覆盖了已过时的 API。 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/position/service/PositionService.java: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/datascope/service/DataScopeSqlConfigService.java: D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\src\main\java\com\huaanbao\admin\module\system\datascope\service\DataScopeSqlConfigService.java使用了未经检查或安全的操作。 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/admin/src/main/java/com/huaanbao/admin/module/system/datascope/service/DataScopeSqlConfigService.java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ admin --- [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\src\test\resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ admin --- [INFO] No sources to compile [INFO] [INFO] --- surefire:3.2.5:test (default-test) @ admin --- [INFO] Tests are skipped. [INFO] [INFO] --- jar:3.4.1:jar (default-jar) @ admin --- [INFO] Building jar: D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\target\admin-dev-1.0.0-SNAPSHOT.jar [INFO] [INFO] --- install:3.1.2:install (default-install) @ admin --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\admin\1.0.0-SNAPSHOT\admin-1.0.0-SNAPSHOT.pom [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\admin\target\admin-dev-1.0.0-SNAPSHOT.jar to D:\software\apache-maven-3.6.0\repository\com\huaanbao\admin\1.0.0-SNAPSHOT\admin-1.0.0-SNAPSHOT.jar [INFO] [INFO] -------------------------< com.huaanbao:types >------------------------- [INFO] Building types 1.0.0-SNAPSHOT [4/9] [INFO] from types\pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ types --- [INFO] Deleting D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\target [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ types --- [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\src\main\resources [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\src\main\resources\dev [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\src\main\resources\dev [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\src\main\resources\dev [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ types --- [INFO] Recompiling the module because of changed source code. [INFO] Compiling 6 source files with javac [debug target 17] to target\classes [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ types --- [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\src\test\resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ types --- [INFO] No sources to compile [INFO] [INFO] --- surefire:3.2.5:test (default-test) @ types --- [INFO] Tests are skipped. [INFO] [INFO] --- jar:3.4.1:jar (default-jar) @ types --- [INFO] Building jar: D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\target\types-dev-1.0.0-SNAPSHOT.jar [INFO] [INFO] --- install:3.1.2:install (default-install) @ types --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\types\1.0.0-SNAPSHOT\types-1.0.0-SNAPSHOT.pom [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\types\target\types-dev-1.0.0-SNAPSHOT.jar to D:\software\apache-maven-3.6.0\repository\com\huaanbao\types\1.0.0-SNAPSHOT\types-1.0.0-SNAPSHOT.jar [INFO] [INFO] --------------------------< com.huaanbao:biz >-------------------------- [INFO] Building biz 1.0.0-SNAPSHOT [5/9] [INFO] from biz\pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ biz --- [INFO] Deleting D:\Hab_znaisc_v4_java\deepseekdemo-0704\biz\target [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ biz --- [INFO] Copying 16 resources from src\main\resources to target\classes [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\biz\src\main\resources\dev [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\biz\src\main\resources\dev [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\biz\src\main\resources\dev [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ biz --- [INFO] Recompiling the module because of changed dependency. [INFO] Compiling 178 source files with javac [debug target 17] to target\classes [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/pojo/request/query/rule/TemplateNewRuleQry.java:[6,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/pojo/request/query/contractSubmit/ContractSubmitQry.java:[11,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/pojo/request/query/validate/ValidateQry.java:[7,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/pojo/response/contract/ContractInfoResponse.java:[10,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/pojo/request/query/rule/TemplateRuleQry.java:[7,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/pojo/request/query/contract/ContractQry.java:[13,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/pojo/request/query/template/ContractTemplateQry.java:[9,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/contractSubmit/ContractSubmitConvertor.java:[20,26] Unmapped target property: "provinceName". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/contractSubmit/ContractSubmitConvertor.java:[24,32] Unmapped target properties: "gmtCreate, brightStatus". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/template/TemplateRuleConvertor.java:[21,29] Unmapped target properties: "id, templateNo, templateName, pid, code, isDeleted, enable, createBy, updateBy, gmtCreate, gmtModified, ruleEnable". Mapping from Collection element "TemplateRuleAddCO templateRuleAddCO" to "AuditTemplateRule auditTemplateRule". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/template/TemplateRuleConvertor.java:[22,29] Unmapped target properties: "templateNo, templateName, pid, isDeleted, enable, createBy, updateBy, gmtCreate, gmtModified, ruleEnable". Mapping from Collection element "TemplateRuleModifyCO templateRuleModifyCO" to "AuditTemplateRule auditTemplateRule". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/contract/ContractTemplateRuleConvertor.java:[19,22] Unmapped target property: "creator". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/contract/ContractTemplateRuleConvertor.java:[28,22] Unmapped target property: "creator". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/contract/ContractTemplateRuleConvertor.java:[32,31] Unmapped target property: "creator". Mapping from Collection element "NewContractRule newContractRule" to "NewRulePageResponse newRulePageResponse". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/contract/ContractConvertor.java:[17,26] Unmapped target property: "provinceName". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/contract/ContractConvertor.java:[21,26] Unmapped target property: "provinceName". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/convertor/contract/ContractTemplateConvertor.java:[15,26] Unmapped target property: "creator". [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/controller/contractSubmit/ContractSubmitController.java:[66,55] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/controller/contractSubmit/ContractSubmitController.java:[74,61] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/repository/impl/AuditRecordRepositoryImpl.java:[128,67] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/repository/impl/AuditRecordRepositoryImpl.java:[142,85] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/repository/impl/ContractRepositoryImpl.java:[173,67] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/repository/impl/ContractRepositoryImpl.java:[187,85] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/service/impl/ContractAreaServiceImpl.java:[53,67] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/service/impl/ContractFacadeServiceImpl.java:[173,75] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [WARNING] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/service/impl/ContractNewAreaServiceImpl.java:[48,67] java.lang.Long 中的 Long(java.lang.String) 已过时, 且标记为待删除 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/controller/ContractController.java: 某些输入文件使用了未经检查或不安全的操作。 [INFO] /D:/Hab_znaisc_v4_java/deepseekdemo-0704/biz/src/main/java/com/huaanbao/contract/controller/ContractController.java: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ biz --- [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\biz\src\test\resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ biz --- [INFO] No sources to compile [INFO] [INFO] --- surefire:3.2.5:test (default-test) @ biz --- [INFO] Tests are skipped. [INFO] [INFO] --- jar:3.4.1:jar (default-jar) @ biz --- [INFO] Building jar: D:\Hab_znaisc_v4_java\deepseekdemo-0704\biz\target\biz-dev-1.0.0-SNAPSHOT.jar [INFO] [INFO] --- install:3.1.2:install (default-install) @ biz --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\biz\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\biz\1.0.0-SNAPSHOT\biz-1.0.0-SNAPSHOT.pom [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\biz\target\biz-dev-1.0.0-SNAPSHOT.jar to D:\software\apache-maven-3.6.0\repository\com\huaanbao\biz\1.0.0-SNAPSHOT\biz-1.0.0-SNAPSHOT.jar [INFO] [INFO] -------------------------< com.huaanbao:start >------------------------- [INFO] Building start 1.0.0-SNAPSHOT [6/9] [INFO] from start\pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ start --- [INFO] Deleting D:\Hab_znaisc_v4_java\deepseekdemo-0704\start\target [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ start --- [INFO] Copying 0 resource from src\main\resources to target\classes [INFO] Copying 4 resources from src\main\resources\dev to target\classes [INFO] Copying 2 resources from src\main\resources\dev to target\classes [INFO] Copying 4 resources from src\main\resources\dev to target\classes [INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ start --- [INFO] Recompiling the module because of changed dependency. [INFO] Compiling 1 source file with javac [debug target 17] to target\classes [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ start --- [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\start\src\test\resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ start --- [INFO] No sources to compile [INFO] [INFO] --- surefire:3.2.5:test (default-test) @ start --- [INFO] Tests are skipped. [INFO] [INFO] --- jar:3.4.1:jar (default-jar) @ start --- [INFO] Building jar: D:\Hab_znaisc_v4_java\deepseekdemo-0704\start\target\start-dev-1.0.0-SNAPSHOT.jar [INFO] [INFO] --- spring-boot:3.4.3:repackage (default) @ start --- [INFO] Replacing main artifact D:\Hab_znaisc_v4_java\deepseekdemo-0704\start\target\start-dev-1.0.0-SNAPSHOT.jar with repackaged archive, adding nested dependencies in BOOT-INF/. [INFO] The original artifact has been renamed to D:\Hab_znaisc_v4_java\deepseekdemo-0704\start\target\start-dev-1.0.0-SNAPSHOT.jar.original [INFO] [INFO] --- install:3.1.2:install (default-install) @ start --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\start\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\start\1.0.0-SNAPSHOT\start-1.0.0-SNAPSHOT.pom [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\start\target\start-dev-1.0.0-SNAPSHOT.jar to D:\software\apache-maven-3.6.0\repository\com\huaanbao\start\1.0.0-SNAPSHOT\start-1.0.0-SNAPSHOT.jar [INFO] [INFO] ------------------< com.huaanbao:common-dependencies >------------------ [INFO] Building common-dependencies 1.0.0-SNAPSHOT [7/9] [INFO] from common\common-dependencies\pom.xml [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ common-dependencies --- [INFO] [INFO] --- install:3.1.2:install (default-install) @ common-dependencies --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\common\common-dependencies\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\common-dependencies\1.0.0-SNAPSHOT\common-dependencies-1.0.0-SNAPSHOT.pom [INFO] [INFO] ------------------------< com.huaanbao:common >------------------------- [INFO] Building common 1.0.0-SNAPSHOT [8/9] [INFO] from common\pom.xml [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ common --- [INFO] [INFO] --- install:3.1.2:install (default-install) @ common --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\common\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\common\1.0.0-SNAPSHOT\common-1.0.0-SNAPSHOT.pom [INFO] [INFO] -------------------< com.huaanbao:common-generator >-------------------- [INFO] Building common-generator 1.0.0-SNAPSHOT [9/9] [INFO] from common\common-generator\pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [WARNING] The artifact mysql:mysql-connector-java:jar:8.0.33 has been relocated to com.mysql:mysql-connector-j:jar:8.0.33: MySQL Connector/J artifacts moved to reverse-DNS compliant Maven 2+ coordinates. [INFO] [INFO] --- clean:3.2.0:clean (default-clean) @ common-generator --- [INFO] Deleting D:\Hab_znaisc_v4_java\deepseekdemo-0704\common\common-generator\target [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ common-generator --- [INFO] Copying 2 resources from src\main\resources to target\classes [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ common-generator --- [INFO] Recompiling the module because of changed source code. [INFO] Compiling 17 source files with javac [debug target 17] to target\classes [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ common-generator --- [INFO] skip non existing resourceDirectory D:\Hab_znaisc_v4_java\deepseekdemo-0704\common\common-generator\src\test\resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ common-generator --- [INFO] No sources to compile [INFO] [INFO] --- surefire:3.2.5:test (default-test) @ common-generator --- [INFO] Tests are skipped. [INFO] [INFO] --- jar:3.4.1:jar (default-jar) @ common-generator --- [INFO] Building jar: D:\Hab_znaisc_v4_java\deepseekdemo-0704\common\common-generator\target\common-generator-dev-1.0.0-SNAPSHOT.jar [INFO] [INFO] --- install:3.1.2:install (default-install) @ common-generator --- [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\common\common-generator\pom.xml to D:\software\apache-maven-3.6.0\repository\com\huaanbao\common-generator\1.0.0-SNAPSHOT\common-generator-1.0.0-SNAPSHOT.pom [INFO] Installing D:\Hab_znaisc_v4_java\deepseekdemo-0704\common\common-generator\target\common-generator-dev-1.0.0-SNAPSHOT.jar to D:\software\apache-maven-3.6.0\repository\com\huaanbao\common-generator\1.0.0-SNAPSHOT\common-generator-1.0.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for contract-intelligence 1.0.0-SNAPSHOT: [INFO] [INFO] contract-intelligence .............................. SUCCESS [ 0.378 s] [INFO] framework .......................................... SUCCESS [ 17.691 s] [INFO] admin .............................................. SUCCESS [ 6.627 s] [INFO] types .............................................. SUCCESS [ 0.722 s] [INFO] biz ................................................ SUCCESS [ 7.299 s] [INFO] start .............................................. SUCCESS [ 3.587 s] [INFO] common-dependencies ................................ SUCCESS [ 0.011 s] [INFO] common ............................................. SUCCESS [ 0.012 s] [INFO] common-generator ................................... SUCCESS [ 1.228 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 38.072 s [INFO] Finished at: 2025-08-01T16:17:39+08:00 [INFO] ------------------------------------------------------------------------ 解析上述运行结果
最新发布
08-02
Executing tasks: [:app:assembleDebug] in project D:\TestProject\MyApplication > Task :app:createDebugVariantModel UP-TO-DATE > Task :app:preBuild UP-TO-DATE > Task :app:preDebugBuild UP-TO-DATE > Task :app:mergeDebugNativeDebugMetadata NO-SOURCE > Task :app:compileDebugAidl NO-SOURCE > Task :app:compileDebugRenderscript NO-SOURCE > Task :app:generateDebugBuildConfig UP-TO-DATE > Task :app:javaPreCompileDebug UP-TO-DATE > Task :app:checkDebugAarMetadata UP-TO-DATE AGPBI: {"kind":"warning","text":"Your project has set `android.useAndroidX=true`, but configuration `:app:debugRuntimeClasspath` still contains legacy support libraries, which may cause runtime issues.\nThis behavior will not be allowed in Android Gradle plugin 8.0.\nPlease use only AndroidX dependencies or set `android.enableJetifier=true` in the `gradle.properties` file to migrate your project to AndroidX (see https://developer.android.com/jetpack/androidx/migrate for more info).\nThe following legacy support libraries are detected:\n:app:debugRuntimeClasspath -> com.android.support:support-compat:28.0.0\n:app:debugRuntimeClasspath -> com.android.support:support-compat:28.0.0 -> com.android.support:support-annotations:28.0.0\n:app:debugRuntimeClasspath -> com.android.support:support-compat:28.0.0 -> com.android.support:collections:28.0.0\n:app:debugRuntimeClasspath -> com.android.support:support-compat:28.0.0 -> android.arch.lifecycle:runtime:1.1.1\n:app:debugRuntimeClasspath -> com.android.support:support-compat:28.0.0 -> android.arch.lifecycle:runtime:1.1.1 -> android.arch.lifecycle:common:1.1.1\n:app:debugRuntimeClasspath -> com.android.support:support-compat:28.0.0 -> android.arch.lifecycle:runtime:1.1.1 -> android.arch.core:common:1.1.1\n:app:debugRuntimeClasspath -> com.android.support:support-compat:28.0.0 -> com.android.support:versionedparcelable:28.0.0","sources":[{}]} > Task :app:generateDebugResValues UP-TO-DATE > Task :app:mapDebugSourceSetPaths UP-TO-DATE > Task :app:generateDebugResources UP-TO-DATE > Task :app:mergeDebugResources UP-TO-DATE > Task :app:packageDebugResources UP-TO-DATE > Task :app:parseDebugLocalResources UP-TO-DATE > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE > Task :app:extractDeepLinksDebug UP-TO-DATE > Task :app:processDebugMainManifest FAILED [androidx.versionedparcelable:versionedparcelable:1.1.1] C:\Users\wangsen\.gradle\caches\transforms-3\4b621581b14be943fef7e9025808a5ef\transformed\versionedparcelable-1.1.1\AndroidManifest.xml Warning: Namespace 'androidx.versionedparcelable' used in: androidx.versionedparcelable:versionedparcelable:1.1.1, com.android.support:versionedparcelable:28.0.0. D:\TestProject\MyApplication\app\src\main\AndroidManifest.xml:22:18-91 Error: Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.7.0] AndroidManifest.xml:24:18-86 value=(androidx.core.app.CoreComponentFactory). Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:7:5-25:19 to override. See https://developer.android.com/r/studio-ui/build/manifest-merger for more information about the manifest merger. > Task :app:mergeDebugShaders UP-TO-DATE > Task :app:compileDebugShaders NO-SOURCE > Task :app:generateDebugAssets UP-TO-DATE > Task :app:mergeDebugAssets UP-TO-DATE > Task :app:compressDebugAssets UP-TO-DATE > Task :app:processDebugJavaRes NO-SOURCE > Task :app:desugarDebugFileDependencies UP-TO-DATE > Task :app:mergeDebugJniLibFolders UP-TO-DATE > Task :app:mergeDebugNativeLibs NO-SOURCE > Task :app:stripDebugDebugSymbols NO-SOURCE > Task :app:validateSigningDebug UP-TO-DATE > Task :app:writeDebugAppMetadata UP-TO-DATE > Task :app:writeDebugSigningConfigVersions UP-TO-DATE > Task :app:checkDebugDuplicateClasses FAILED > Task :app:mergeDebugJavaResource FAILED FAILURE: Build completed with 3 failures. 1: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':app:processDebugMainManifest'. > Manifest merger failed with multiple errors, see logs * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. ============================================================================== 2: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':app:checkDebugDuplicateClasses'. > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable > Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.os.IResultReceiver found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.os.ResultReceiver found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.os.ResultReceiver$1 found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class androidx.core.graphics.drawable.IconCompatParcelizer found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class androidx.core.internal.package-info found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-28.0.0-runtime (com.android.support:support-compat:28.0.0) Duplicate class androidx.versionedparcelable.CustomVersionedParcelable found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.NonParcelField found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.ParcelField found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.ParcelImpl found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.ParcelImpl$1 found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.ParcelUtils found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.VersionedParcel found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.VersionedParcel$1 found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.VersionedParcel$ParcelException found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.VersionedParcelParcel found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.VersionedParcelStream found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.VersionedParcelStream$FieldBuffer found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.VersionedParcelable found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Duplicate class androidx.versionedparcelable.VersionedParcelize found in modules versionedparcelable-1.1.1-runtime (androidx.versionedparcelable:versionedparcelable:1.1.1) and versionedparcelable-28.0.0-runtime (com.android.support:versionedparcelable:28.0.0) Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. ============================================================================== 3: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':app:mergeDebugJavaResource'. > A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction > 2 files found with path 'META-INF/androidx.core_core.version' from inputs: - C:\Users\wangsen\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\jars\classes.jar - C:\Users\wangsen\.gradle\caches\transforms-3\0212d0c0c0b99c5d00c15a82a811f4d1\transformed\core-1.7.0\jars\classes.jar Adding a packagingOptions block may help, please refer to https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/ResourcesPackagingOptions for more information * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. ============================================================================== * Get more help at https://help.gradle.org BUILD FAILED in 436ms 22 actionable tasks: 3 executed, 19 up-to-date
07-10
<think>我们面对的问题:Android项目在构建APK时由于混合使用AndroidX和旧版Support库导致的Manifest合并错误和类冲突问题。 具体错误包括: 1. Manifest merger failed: 例如Attribute application@appComponentFactory冲突(引用[5])。 2. Duplicate class: 例如android.support.v4.app.INotificationSideChannel在androidx和support库中重复出现(引用[1][3])。 原因分析:从引用[2][3]中可以看出,这是因为项目同时引用了Android Support库和AndroidX库,而这两个库不能共存。 解决方法有两种(引用[2][4]): 方法一:将整个项目迁移到AndroidX(推荐,因为AndroidX是Support库的替代,且是未来方向)。 方法二:排除冲突的依赖,并确保所有依赖都使用同一种库(要么全部用Support,要么全部用AndroidX)。但考虑到新库可能已经迁移到AndroidX,所以方法一更彻底。 下面详细说明两种方法: ### 方法一:迁移到AndroidX(推荐) 1. **使用Android Studio的迁移工具** - 确保Android Studio版本在3.2以上(建议使用最新版)。 - 在菜单栏选择:Refactor > Migrate to AndroidX... - 按照向导操作,迁移工具会自动替换代码中的Support库类为AndroidX的对应类,并更新gradle文件。 2. **手动配置gradle.properties** 如果迁移工具没有自动添加,可以在项目根目录的`gradle.properties`文件中添加: ```properties android.useAndroidX=true android.enableJetifier=true ``` - `android.useAndroidX=true`:表示使用AndroidX库。 - `android.enableJetifier=true`:自动转换第三方库中的Support库为AndroidX库(解决第三方库冲突)。 3. **修改build.gradle** 确保依赖中使用的是AndroidX库,例如: ```groovy dependencies { implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // 其他依赖 } ``` 4. **处理Manifest冲突** 如果迁移后仍然出现Manifest合并错误(如引用[5]中的错误),可以在`AndroidManifest.xml`的`<application>`标签中添加: ```xml <application ... tools:replace="android:appComponentFactory" android:appComponentFactory="androidx.core.app.CoreComponentFactory" > ``` 注意:添加`tools:replace`属性是为了替换冲突的属性,同时指定使用AndroidX的CoreComponentFactory。 ### 方法二:回退到Support库(不推荐,仅临时方案) 如果由于某些原因不能迁移到AndroidX,可以尝试将所有依赖都回退到使用Support库的版本。但注意,新版本的库可能已经不支持Support库了。 1. **检查依赖版本** 在app的build.gradle中,确保所有依赖都是Support库版本,并且版本一致(如28.0.0)。例如: ```groovy dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:design:28.0.0' // 避免使用已经迁移到AndroidX的库,例如lottie-android如果使用了AndroidX,则需要降级到支持Support库的版本 } ``` 2. **排除冲突的依赖** 如果某个依赖引入了AndroidX库,可以排除它: ```groovy implementation ('com.example.library:example:1.0') { exclude group: 'androidx.core', module: 'core' } ``` 3. **强制使用Support库版本** 在build.gradle中配置强制使用某个版本(注意:可能导致运行时错误): ```groovy configurations.all { resolutionStrategy { force 'com.android.support:support-v4:28.0.0' force 'com.android.support:appcompat-v7:28.0.0' // 其他冲突的库 } } ``` 4. **处理Manifest冲突** 同样,如果出现Manifest合并错误,可以在`AndroidManifest.xml`的`<application>`标签中添加: ```xml <application ... tools:replace="android:appComponentFactory" android:appComponentFactory="android.support.v4.app.CoreComponentFactory" > ``` ### 注意事项 - 迁移到AndroidX后,代码中所有引用Support库的地方都需要改为AndroidX的对应类(迁移工具会自动完成大部分)。 - 迁移后,需要测试所有功能,因为包名改变可能导致反射等操作失败。 - 如果使用第三方库,确保它们也支持AndroidX,或者使用Jetifier转换(通过`android.enableJetifier=true`)。 根据引用[2][4]的建议,迁移到AndroidX是根本解决方案,因为Google已经停止维护Support库。 希望以上步骤能解决你的问题。 §§相关问题§§ 1. 如何检查项目中哪些依赖还在使用Support库? 2. 迁移到AndroidX后如何解决第三方库导致的运行时错误? 3. Jetifier工具的工作原理是什么?它如何转换第三方库? 4. 如何解决迁移AndroidX后出现的资源文件错误(如布局文件中的类路径错误)? 5. 有没有自动回退到Support库的迁移工具?</think>### 解决 Android Gradle 构建中的 Manifest 合并错误与类冲突问题 当 Android 项目同时使用 AndroidX 和旧版 Support 库时,会导致构建失败,主要出现以下两类错误: 1. **Manifest Merger Failed** (如 `Attribute application@appComponentFactory` 冲突) 2. **Duplicate Class** (如 `android.support.v4.app.INotificationSideChannel` 在多个库中重复) 根本原因是 **AndroidX 和 Support 库无法共存**(引用[2][3]),以下是系统化的解决方案: --- ### 解决方案一:迁移到 AndroidX(推荐) #### 步骤 1:启用 AndroidX 支持 在项目根目录的 `gradle.properties` 文件中添加: ```properties android.useAndroidX=true android.enableJetifier=true ``` - `useAndroidX`:强制使用 AndroidX 库 - `enableJetifier`:自动转换第三方库中的 Support 类为 AndroidX(关键!引用[4]) #### 步骤 2:更新依赖库版本 在 `app/build.gradle` 中替换所有 Support 库依赖: ```gradle dependencies { // 替换前:implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'androidx.appcompat:appcompat:1.6.1' // AndroidX 版本 // 替换前:implementation 'com.android.support:design:28.0.0' implementation 'com.google.android.material:material:1.9.0' // Material Design 库 } ``` #### 步骤 3:修复 Manifest 冲突 在 `AndroidManifest.xml` 的 `<application>` 标签添加: ```xml <application ... tools:replace="android:appComponentFactory" android:appComponentFactory="androidx.core.app.CoreComponentFactory"> </application> ``` `tools:replace` 会覆盖冲突属性(引用[5]) --- ### 解决方案二:强制使用 Support 库(临时方案) #### 步骤 1:排除冲突依赖 ```gradle dependencies { implementation('com.thirdparty.library:1.0') { exclude group: 'androidx.core', module: 'core' // 排除 AndroidX } implementation 'com.android.support:support-compat:28.0.0' // 明确使用 Support } ``` #### 步骤 2:统一所有库版本 在 `build.gradle` 中强制统一版本: ```gradle configurations.all { resolutionStrategy { force 'com.android.support:support-v4:28.0.0' force 'com.android.support:appcompat-v7:28.0.0' } } ``` --- ### 关键注意事项 1. **Jetifier 的作用** 当 `enableJetifier=true` 时,Gradle 会自动重写第三方库的字节码,将其中的 `android.support.*` 替换为 `androidx.*`(引用[4]) 2. **迁移后的代码调整** - 将 Java 代码中的 `import android.support.v7.app.AppCompatActivity` 改为 `import androidx.appcompat.app.AppCompatActivity` - 布局文件中的 `android.support.design.widget.TextInputLayout` 改为 `com.google.android.material.textfield.TextInputLayout` 3. **清理构建缓存** 执行以下命令清除缓存: ```bash ./gradlew cleanBuildCache ``` --- ### 验证是否解决 1. 检查构建日志中是否还有 `Duplicate class` 或 `Manifest merger` 错误 2. 使用以下命令确认依赖关系: ```bash ./gradlew :app:dependencies ``` 输出中不应同时出现 `androidx.*` 和 `com.android.support.*` > **推荐策略**:优先采用方案一(迁移到 AndroidX),因为 Google 已停止维护 Support 库,且新版本库(如 Jetpack Compose)仅支持 AndroidX(引用[2][4])。 --- ### 相关问题 1. 如何检测项目中哪些第三方库仍在使用 Support 库? 2. 迁移到 AndroidX 后出现资源 ID 冲突(`R.id` 重复)该如何解决? 3. AndroidX 迁移工具在哪些情况下会失败?如何手动修复迁移后的代码? 4. 如何解决多模块项目中部分模块未迁移导致的构建冲突? 5. Jetifier 转换库的原理是什么?它如何影响构建性能?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值