holoeverywhere gradle版本冲突

时间:2014-10-29 17:08:52

标签: actionbarsherlock android-gradle build.gradle android-holo-everywhere holoeverywhere

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或任何其他支持库,我想知道它如何适用于旧设备< / p>

0 个答案:

没有答案