如何强制gradle使用特定的appcompat-v7版本?

时间:2016-05-10 13:45:11

标签: android android-studio gradle

在我的gradle文件中,我有这个

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support:design:23.0.0'
            ...
}

然后,运行gradle dependencies我看到类似这样的内容

+--- com.android.support:appcompat-v7:23.0.0 -> 23.1.1
|    \--- com.android.support:support-v4:23.1.1

可能表示它自动使用23.1.1。这会导致库的问题取决于23.0.0。我得到这样的错误

  

错误:找不到符号变量dialog_fixed_height_major

     

错误:找不到符号变量dialog_fixed_height_minor

     

错误:找不到符号变量dialog_fixed_width_major

     

错误:找不到符号变量dialog_fixed_width_minor

     

错误:找不到符号变量   RtlOverlay_Widget_AppCompat_ActionButton_Overflow

这是因为版本23.1.0上的那些符号were removed

如何强制gradle重新构建23.0.0以便让依赖项变得快乐?

1 个答案:

答案 0 :(得分:2)

"问题"是Gradles冲突解决策略。您的某些依赖性取决于库的较新版本。如果您在dependencies的输出中向下滚动,那么您会看到哪一个。

Gradle的默认解析策略是采用最新的请求版本。您可以将其更改为构建失败,这意味着您必须手动解决所有版本冲突。但是如果你的东西取决于新版本,那么问题是它是否适用于旧版本。

您可以在Gradle User Guide中了解有关冲突解决的更多信息。