在我的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
以便让依赖项变得快乐?
答案 0 :(得分:2)
"问题"是Gradles冲突解决策略。您的某些依赖性取决于库的较新版本。如果您在dependencies
的输出中向下滚动,那么您会看到哪一个。
Gradle的默认解析策略是采用最新的请求版本。您可以将其更改为构建失败,这意味着您必须手动解决所有版本冲突。但是如果你的东西取决于新版本,那么问题是它是否适用于旧版本。
您可以在Gradle User Guide中了解有关冲突解决的更多信息。