程序类型已经存在:com.mapbox.android.core.location.GoogleLocationEngine

时间:2018-12-30 08:02:41

标签: android gradle mapbox mapbox-android

我正在尝试将Mapbox与Google Play服务位置一起使用。

一切正常,直到我添加implementation 'com.google.android.gms:play-services-location:16.0.0'以便能够在后台运行应用程序时请求位置更新。

Gradle构建良好,但是在编译项目时出现以下错误:

....
Caused by: com.android.tools.r8.utils.AbortException: Error: Program type already present: com.mapbox.android.core.location.GoogleLocationEngine$1$2
at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:116)
at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:74)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:59)
... 57 more

我之前也遇到过类似的问题,因此能够排除导致该问题的库。但是,对于Mapbox,我无法弄清楚如何解决此冲突。

我尝试过的事情:

implementation ('com.mapbox.mapboxsdk:mapbox-android-sdk:6.8.0'){
    exclude group: "com.google.android.gms", module: "play-services-location"
} // Probably will have no effect as this module doesn't seem to be a dependency of Mapbox

OR

implementation ('com.google.android.gms:play-services-location:16.0.0'){
    force = true
}

任何帮助将不胜感激。

编辑:尝试使用Mapbox的7.0.0 beta2版本似乎可以解决该问题,但是我想避免在prod中使用beta版本,因此,如果有任何办法,我可以使用{{ 1}}很棒

1 个答案:

答案 0 :(得分:0)

添加android定位服务:

implementation 'com.google.android.gms:play-services-location:16.0.0'

在build.gradle(应用程序级别)的依赖项关闭部分之后,添加以下行:

apply plugin: 'com.google.gms.google-services'

赞:

    dependencies {
       ...
       implementation 'com.google.android.gms:play-services-location:16.0.0'
    }
    apply plugin: 'com.google.gms.google-services'