第三方库引用冲突的问题

之前在做即时通讯的时候用的即时通讯云环信,在引用环信easeUI的使用出现的包引用冲突的问题。

原因

1、easeui引用的libs和主项目中引用相同的jar包

 因为如果删除摸个jar包的话代码的改动比较大,所以在类库的buile.gradle中使用

provided fileTree(include: ['*.jar'], dir: 'libs')

使用provided只允许在本类库中使用此jar包。

2、gliede版本的问题,easeui和主项目中都用到了glide但是版本不一样,类库中用的是glide3,主项目中用的glide4,运行时出现了方法找不到的问题。这是要求类库的第三番引用要和主项目中的一样,同时easeui的glide方法也要相应的改动,glide4和glide3在用法不太一样。

3、为了防止防止类库的版本问题在build.gradle中设置

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.1.0'
            }
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你的根目录下有一个名为requests的文件夹或文件,那么在引用requests库时可能会发生命名冲突。这时可以尝试以下几种方法解决问题: 1. 修改文件夹或文件的名称,避免与requests库名称重复。 2. 使用相对导入方式引用requests库,例如: ```python from . import requests ``` 3. 使用绝对导入方式引用requests库,例如: ```python import sys sys.path.append('/path/to/requests') import requests ``` 其中,`/path/to/requests`指代requests库所在的路径。 ### 回答2: 当引用requests库与根目录重名时,我们无法直接使用import语句来引用requests库,因为Python会优先从当前工作目录中搜索与根目录同名的模块。这就导致了引用requests库的问题。 为了解决这个问题,我们可以通过修改模块搜索路径来确保能够正确引用requests库。可以使用sys模块来添加requests库的路径到搜索路径列表中。具体步骤如下: 首先,我们需要通过import语句来导入sys模块: import sys 然后,我们可以通过sys.path.append()方法将requests库的安装路径添加到搜索路径列表中。假设requests库的安装路径为"/path/to/requests",则可以使用以下代码: sys.path.append('/path/to/requests') 现在,我们可以使用import语句来引用requests库了: import requests 通过这种方法,我们可以确保引用的是requests库,而不是与根目录同名的模块。 需要注意的是,如果在使用requests库的其他地方也存在与根目录同名的模块,那么在引用这些模块时仍然需要使用类似的方法来确保引用正确的模块。 ### 回答3: 如果引用requests库与根目录重名,意味着在当前的工程目录下已经存在一个名为requests的文件或文件夹。由于Python解释器在导入模块时优先搜索当前目录,而非内置模块或第三方库,因此当我们尝试导入requests时,会发生冲突。 为了解决这个问题,我们需要采取一些措施。首先,我们可以尝试更改或删除与根目录重名的文件或文件夹。如果文件或文件夹不再需要,可以直接删除以解决冲突。如果我们需要保留这些文件或文件夹,可以考虑将其移动到其他位置,以便requests库能够正常导入。 另外,我们还可以使用绝对导入路径来明确指定我们要导入的requests库的位置。例如,如果requests库位于根目录下的子文件夹中,我们可以使用类似于`from my_module.requests import ...`的方式来导入库。这样就可以避免与根目录重名的冲突。 最后,如果以上方法都不起作用,我们可以尝试在Python文件开头使用sys模块的sys.path.insert(0, 'path_to_requests')语句,将requests库所在的路径添加到搜索路径中。这样就能够确保Python解释器能够正确地找到并导入requests库。 总之,解决导入requests库与根目录重名的问题可以通过更改或删除重名的文件或文件夹,使用绝对导入路径,或通过添加搜索路径等方式来实现。这样就能够保证我们能够正常地使用requests库的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值