与相同库冲突但具有不同版本

时间:2017-09-24 13:59:17

标签: android android-studio gradle

我有自己的项目使用appcompat库:

implementation 'com.android.support:appcompat-v7:26.1.0'

我的项目使用的库使用:

implementation 'com.android.support:appcompat-v7:26.0.1'

因此Android Studio出现了有关此冲突的错误。但我在项目中别无选择,只能使用最新版本的compat,并使用旧版本保留库。

如何合并两者?我已经尝试排除这样的模块:

implementation('com.azquidk.sdk') {
    exclude group: 'com.android.support', module: 'appcompat-v7'
    exclude group: 'com.android.support', module: 'design'
}

但是没有用。

修改

与此同时,我发现这也有效:

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'
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

尝试添加此内容:

def tryy(obj, f, *args, **kwargs):
    if obj is None:
        return None
    else:
        return getattr(obj, f)(*args, **kwargs)

tryy([10, 20], '__getitem__', 1)
# >>> 20

tryy(None, '__getitem__', 1)
# >>> None