如何在Gradle中排除.jar依赖项



我构建了一个由其他一些项目组成的项目。在第一个项目中,我有下一个依赖项:

compile files('libs/google-play-services.jar')

这是旧版本的谷歌服务API。在其他项目中,我使用其他最新的谷歌API

compile 'com.google.android.gms:play-services-ads:8.3.0'
compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'
compile 'com.google.android.gms:play-services-maps:8.3.0'
compile 'com.google.android.gms:play-services-location:8.3.0'

因此,如果我试图将这些项目编译为一个项目,我会收到关于库冲突的错误。请告诉我,我该如何解决这个问题?

问题是,我在启动已构建的应用程序时遇到了下一个冲突:

error: cannot find symbol method getMapAsync(<anonymous OnMapReadyCallback>)

似乎当编译完成并启动应用程序时,由于未知原因,它试图使用旧的api(其中api应该是8.3.0版本)而不是新的。

这取决于冲突是什么,但这是排除依赖关系的方法:

compile ('com.google.android.gms:play-services-ads:8.3.0'){
    exclude module: 'support-annotations'
}

(一个虚构的例子)

最新更新