Loading

准备团队冲刺二阶段-解决现在的报错

团队冲刺二阶段开始了,这次我们的主要任务为完成安卓端的app开发。

我的个人任务也很重,安卓端的app主要由我承担主要内容。

我们现在就有很多问题需要解决

Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'MavenLocal' was added by build file 'build.gradle'

这个错误提示是由Gradle引擎抛出的,意思是你在构建时配置了优先使用settings repositories而非project repositories,但是你的build.gradle文件中添加了MavenLocal repository,这与你的设置不符。

要解决这个问题,你可以采取以下步骤:

1. 确认你是否真的需要使用MavenLocal repository。如果不需要,可以直接将build.gradle中的相关代码注释或删除。

2. 如果确实需要使用MavenLocal repository,则需要将Gradle的优先使用设置改为使用project repositories而非settings repositories。可以在settings.gradle文件中添加以下代码:


dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
}

3. 确认你的MavenLocal repository是否已经正确配置,包括MavenLocal的地址和仓库中所包含的依赖文件。如果没有正确配置,也会导致这个错误。

Type okhttp3.Call is defined multiple times: D:\AndroidStudioCode\ACodeOne\AB\CD\TransformApp\app\build\intermediates\mixed_scope_dex_archive\debug\out\36f1cd0798fb231e5be189d0bfe2634d5879f73082be5718ca30a73d1ee15e4b_0.jar:classes.dex, D:\AndroidStudioCode\ACodeOne\AB\CD\TransformApp\app\build\intermediates\mixed_scope_dex_archive\debug\out\4aca3e552afb1ceb47f8956685f6295a276e49fa03f9066f8b6be83bec56fb66_0.jar:classes.dex

这个异常的意思是 `okhttp3.Call` 类被定义了多次,具体是指在两个不同的 dex 文件(`36f1cd0798fb231e5be189d0bfe2634d5879f73082be5718ca30a73d1ee15e4b_0.jar` 和 `4aca3e552afb1ceb47f8956685f6295a276e49fa03f9066f8b6be83bec56fb66_0.jar`)中都有该类的定义。

这通常是因为在编译时多个模块或依赖库中都依赖了 `okhttp3` 库,而每个模块或依赖库都会将该库的类打包到自己的 dex 文件里面。在最终打包生成 APK 时,由于存在重复的类定义,就会报这个异常。

解决该异常的方法是先检查项目中所有依赖库中是否都依赖了最新版本的 `okhttp3`,如果不是,尝试升级该库到最新版本。如果检查后确定所有依赖库都使用了最新版本的 `okhttp3`,则可以尝试将项目的编译选项中增加 `multiDexEnabled true`,开启多 dex 支持,让编译器将 dex 文件拆分成多个小文件,从而避免每个 dex 文件中出现重复的类定义。

posted @ 2023-05-09 20:58  冰稀饭Aurora  阅读(363)  评论(0编辑  收藏  举报