MyApp build.gradle 看起来像这样
apply plugin: 'holoeverywhere-app'
apply plugin: 'com.android.application'
configurations.all {
resolutionStrategy.failOnVersionConflict()
}
android {
.... blah blah nothing important
}
holoeverywhere {
library {
version = '2.1.0'
}
support {
version = 'inherit'
}
addons {
preferences
}
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':google-play-services_lib')
compile project(':FacebookSDK')
compile('com.android.support:support-v4:21.0.0') { force = true }
}
我的依赖项看起来像这样
+--- project :google-play-services_lib
+--- project :CustomLib |
| \--- project :FacebookSDK
| \--- com.android.support:support-v4:21.0.0
| \--- com.android.support:support-annotations:21.0.0
+--- com.android.support:support-v4:21.0.0 (*)
+--- org.holoeverywhere:library:2.1.0
| +--- com.nineoldandroids:library:2.4.0
| \--- com.android.support:support-v4:18.0.3 -> 21.0.0 (*)
\--- org.holoeverywhere:addon-preferences:2.1.0
\--- org.holoeverywhere:library:2.1.0 (*)
情况是
- MyApp 依赖于 HoloEverywhere 但也需要 android.support-v4:19.1.0 或更高版本(v4:21.0.0)
- HoloEverywhere 2.1.0 仅需要 android.support-v4:18.0.3(这是为 HE 制作的自定义版本)
- FacebookSDK 需要 android.support-v4:任何版本
问题是
- 如果我不使用 force = true,构建会由于 v4:18.0.3 和 v4:21.0.0 的版本冲突而中断
- 如果我使用 force = true,HE 将依赖 v4:21.0.0 并在运行时中断(我不知道 HE 插件有一个选项来强制它使用 v4:18.0.3)
- 我尝试手动附加 HE,如wiki所示,但 maven repo url 已损坏,甚至 github repo url(" https://raw.github.com/Prototik/HoloEverywhere/repo ") 已损坏
请帮助我配置依赖项,我已经失去了 3 天的时间来尝试完成这项工作。
作为一个附带问题,HE 2.1.0 使用 ActionBarCompat 而不是 ActionBarSherlock,所以我的 MenuItem 导入现在来自 android.view 而不是 ABS 或任何其他支持库,我想知道它如何适用于旧设备