使用LiveData依赖项进行构建时,“无法解决:支持片段”

时间:2018-07-12 16:17:30

标签: android gradle android-gradle build.gradle android-livedata

尝试通过gradle(构建 var chartViewUpa: BarsChart! @IBOutlet var chartViewUp: UIView! override func viewDidLoad() { super.viewDidLoad() //---- GRAFICO SUPERIOR let chartConfig = BarsChartConfig( valsAxisConfig: ChartAxisConfig (from:0, to:8, by:2) ) let frame = CGRect(x: 0, y: 20, width: chartViewUp.bounds.size.width , height: chartViewUp.bounds.size.height-40) let chart = BarsChart( frame: frame, chartConfig: chartConfig, xTitle: "", yTitle: "", bars: [ ("A", 2), ("B", 4.5), ("C", 3), ("D", 5.4), ("E", 6.8), ("F", 0.5) ], color: UIColor.purple, barWidth: 20 ) chartViewUp.addSubview(chart.view) self.chartViewUpa = chart } 和包装器3.1.3)在Android Studio 3.1.3中使用LiveData,但获得4.4的应用Failed to resolve: support-fragment依存关系,它们是:

build.gradle

dependencies { def lifecycle_version = "1.1.1" implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support:recyclerview-v7:27.1.1' implementation 'com.android.support:design:27.1.1' implementation "android.arch.persistence.room:runtime:1.1.1" annotationProcessor "android.arch.persistence.room:compiler:1.1.1" // LiveData dependencies implementation "android.arch.lifecycle:extensions:$lifecycle_version" annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" androidTestImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support:support-annotations:27.1.1' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test:rules:1.0.2' } 依赖关系似乎与LiveData支持库冲突,因为在没有appcompat依赖关系的情况下构建成功。

这是这两个库之间的版本不兼容吗?

在使用这两个库时如何解决此问题以允许构建?

修改

将支持库(LiveDataappcompatrecyclerviewdesign回退到27.1.1后,构建成功。

问题似乎专门链接到27.0.2appcompat支持库(只有当两个都是design时构建才成功),因为27.0.2支持库在{ {1}}。

不确定将recyclerview27.1.1依赖项与LiveData 1.1.1依赖项一起使用时构建失败的原因。

1 个答案:

答案 0 :(得分:0)

很奇怪,对于您的依赖项,我看不到任何异常。这些是我当前项目中的依赖项:

ext.libraries = [
    //region Dependency versions
    lifecycleVersion : "1.1.1",
    googleSupportVersion : '27.1.1'
    //endregion
]

//region Support dependencies
implementation "com.android.support:recyclerview-v7:$libraries.googleSupportVersion"
implementation "com.android.support:appcompat-v7:$libraries.googleSupportVersion"
implementation "com.android.support:support-v13:$libraries.googleSupportVersion"
implementation "com.android.support:design:$libraries.googleSupportVersion"
implementation "com.android.support:cardview-v7:$libraries.googleSupportVersion"
implementation 'com.android.support.constraint:constraint-layout:1.1.1'
//endregion

//region DataBinding/Lifecycle dependencies
implementation "android.arch.core:runtime:$libraries.lifecycleVersion"
implementation "android.arch.lifecycle:extensions:$libraries.lifecycleVersion"
api "android.arch.lifecycle:viewmodel:$libraries.lifecycleVersion"
implementation "android.arch.lifecycle:livedata:$libraries.lifecycleVersion"
implementation "android.arch.lifecycle:livedata-core:$libraries.lifecycleVersion"
implementation "android.arch.lifecycle:reactivestreams:$libraries.lifecycleVersion"
kapt "android.arch.lifecycle:compiler:$libraries.lifecycleVersion"
kapt "com.android.databinding:compiler:$android_plugin_version"
//endregion

复制此依赖项,并删除不需要的依赖项。应该可以。

我的ext.android_plugin_version = '3.1.3'与我的gradle插件的版本相同,您应该查看build.gradle中使用的版本并进行相应的更新。您应该寻找这个classpath "com.android.tools.build:gradle:$android_plugin_version"。并记住将kapt替换为annotationProcessor

莱姆知道这是否解决了问题。