holoeverywhere gradle version conflicts

229 Views Asked by At

MyApp build.gradle looks like this

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

My dependencies look like this

+--- 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 (*)

The situation is

  • MyApp depends on HoloEverywhere but also requires android.support-v4:19.1.0 or higher(v4:21.0.0)
  • HoloEverywhere 2.1.0 requires android.support-v4:18.0.3 only (it's the custom version made for HE)
  • FacebookSDK requires android.support-v4: any version

The problem is

  • If I don't use force = true, the build breaks due to version conflict of v4:18.0.3 & v4:21.0.0
  • If I use force = true, HE will then rely on v4:21.0.0 and break at runtime(I dont know an option for HE plugin to force it to use v4:18.0.3)
  • I tried manually attaching HE as shown in wiki, but the maven repo url is broken, even the github repo url("https://raw.github.com/Prototik/HoloEverywhere/repo") is broken

Please help me with configuring dependencies, I've already lost 3 days trying to make this work.

As a side question, HE 2.1.0 uses ActionBarCompat instead of ActionBarSherlock, so my MenuItem imports now come from android.view instead of ABS or any other support library, I wonder how it'll work for older devices

0

There are 0 best solutions below