0

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

4

0 回答 0