0

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

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

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

是否还有其他规则要添加?我在文档中找不到任何东西。

4

1 回答 1

1

如果您使用的是 google play 位置服务,并且GoogleLocationEngine您可以尝试添加

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

到你的proguard-rules.pro文件。

我能够重现该问题,并且上述设置有所帮助。

但是,如果您只使用该AndroidLocationEngine引擎最近出现了一些问题,您可以关注问题跟踪器以获取更多信息。

对于更多上下文,如果您不手动将 google play 位置服务依赖项添加到您的项目中,默认构造函数LocationEngineProvider#obtainBestLocationEngineAvailable使用的将返回,否则,它将返回.AndroidLocationEngineGoogleLocationEngine

于 2018-07-23T10:38:53.597 回答