启用Proguard后,Mapbox的LocationLayerPlugin无法更新位置

时间:2018-07-19 18:01:37

标签: android mapbox mapbox-android

我正在使用启用了Proguard的Mapbox的LocationLayerPlugin v0.6.0。

在发行版本中,位置层不要求位置更新:在前台时不显示GPS使用情况图标,并且位置在首次启动后几秒钟就变得陈旧,并且永远不会更新。我正在使用public LocationLayerPlugin(MapView mapView, MapboxMap mapboxMap)构建插件而不提供LocationEngine。

在调试版本(无Proguard)中或在发行版本(minifyEnabled=false中明确禁用Proguard时,不会发生。 proguard-rules.pro文件没有针对Mapbox的任何特定规则(包括SDK和插件),我尝试添加来自https://github.com/mapbox/mapbox-plugins-android/blob/master/app/proguard-rules.pro的规则,但问题仍然存在。

还有其他规则要添加吗?我在文档中找不到任何内容。

1 个答案:

答案 0 :(得分:1)

如果您正在使用Google Play定位服务和GoogleLocationEngine,则可以尝试添加

-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**

到您的proguard-rules.pro文件。

我能够重现该问题,以上设置对我们有帮助。

但是,如果您仅使用AndroidLocationEngine,则该引擎最近出现了一些问题,您可以按照issue tracker来获取更多信息。

有关更多信息,如果您不将Google Play位置服务依赖项手动添加到您的项目中,则default constructor使用的LocationEngineProvider#obtainBestLocationEngineAvailable将返回AndroidLocationEngine,否则,它将返回返回GoogleLocationEngine