我正在使用启用了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的规则,但问题仍然存在。
还有其他规则要添加吗?我在文档中找不到任何内容。
答案 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
。