0

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

Timmy Simons
  • 599
  • 8
  • 21
  • I don't think you can do what you want. You can't have two different versions of the support library at the same time -- at a minimum, dex would disallow multiple versions of the same class. If the HoloEverywhere project has its own custom versions of the support library (which is pretty scary), then they are responsible for keeping it in sync. – Scott Barta Oct 29 '14 at 17:14
  • I really don't know how to fix your problem, but the last snapshot of HE uses a newer version of support v4 and have some known bugs fixed too – Brais Gabin Oct 29 '14 at 22:36

0 Answers0