geoFire.setLocation正在崩溃-Kotlin



我正在和GeoFire一起绘制地图。当试图上传我的地理位置到firebase使用:

initGeoFire.setLocation(currentUser, GeoLocation(mMap.cameraPosition.target.latitude, mMap.cameraPosition.target.longitude))

应用程序崩溃,出现错误:

GeoFire.setLocation - No virtual method setValue(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/firebase/tasks/Task; in class Lcom/google/firebase/database/DatabaseReference; or its super classes (declaration of 'com.google.firebase.database.DatabaseReference'

请帮我解决这个问题。。

这里的问题是GeoFire声明firebase-database依赖关系的方式。2.1.2之后的版本使用以下版本声明(例如,最新的2.3.1(:<version>12.0.1</version>。对于给定版本的firebase-database,setValue方法被解析为setValue(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/firebase/tasks/Task;。我的项目中firebase-database依赖项的实际方法签名(我使用最新的16.0.4(是setValue(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/android/gms/tasks/Task;。注意,返回类型不同,这就是NoSuchMethodError的原因。

对于具有单个参数的removeLocation()也存在同样的问题。快速解决方法是将setLocation()/removeLocation()与一个额外的侦听器参数一起使用——这些方法将被正确解析。

如果你的应用程序中有proguard,也许你应该添加这个规则,这样方法就不会混淆

-dontwarn com.firebase.**
-keep class com.firebase.** { *; }
-keep interface com.firebase.** { *; }

相关内容

  • 没有找到相关文章

最新更新