[如果有人可以提供帮助,我将按照每行代码行完全与本Uber教程中的代码相同,当我运行该应用程序时出现此错误:]
NoSuchMethodError:没有虚拟方法removeValueAsync()...
我想不出解决办法。
我已经检查了我的gradle
依赖关系,并且一切似乎都很好,但是无论我做什么都无法摆脱此错误...
[如果有人能说明我们很棒。
也许是合子错误,我不知道。
这是'case“”:']下的行
提前感谢!
private void onLocationChanged(Location location) { if (getApplicationContext() != null){ mLastLocation = location; LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); mMap.animateCamera(CameraUpdateFactory.zoomTo(14)); String userId = FirebaseAuth.getInstance().getCurrentUser().getUid(); DatabaseReference refAvailable = FirebaseDatabase.getInstance().getReference("driversAvailable"); DatabaseReference refWorking = FirebaseDatabase.getInstance().getReference("driversWorking"); GeoFire geoFireAvailable = new GeoFire(refAvailable); GeoFire geoFireWorking = new GeoFire(refWorking); switch (customerId){ case "": geoFireWorking.removeLocation(userId); geoFireAvailable.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude())); break; default: geoFireAvailable.removeLocation(userId); geoFireWorking.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude())); break; } } }
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'com.google.android.gms:play-services-maps:17.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation 'com.google.firebase:firebase-analytics:17.2.0' implementation 'com.google.firebase:firebase-auth:19.0.0' implementation 'com.google.firebase:firebase-database:19.1.0' implementation 'com.firebase:geofire-java:3.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' implementation 'com.firebase:geofire-java:3.0.0' }
logcat的:
E / AndroidRuntime:致命异常:主要流程:com.e.uber,PID:31292java.lang.NoSuchMethodError:没有虚拟方法setValueAsync(Ljava / lang / Object; Ljava / lang / Object;)Lcom / google / api / core / ApiFuture;在Lcom / google / firebase / database / DatabaseReference类中;或其超级类(声明“ com.google.firebase.database.DatabaseReference”出现在/data/app/com.e.uber-0-WjkWsr0B0ZTV9sQ3Dsgg==/base.apk)在com.firebase.geofire.GeoFire.setLocation(GeoFire.java:178)在com.firebase.geofire.GeoFire.setLocation(GeoFire.java:149)在com.e.uber.DriverMapActivity.onLocationChanged(DriverMapActivity.java:177)at com.e.uber.DriverMapActivity.access $ 300(DriverMapActivity.java:47)在com.e.uber.DriverMapActivity $ 4.onLocationResult(DriverMapActivity.java:155)在com.google.android.gms.internal.location.zzau.notifyListener(未知来源:4)在com.google.android.gms.common.api.internal.ListenerHolder.notifyListenerInternal(com.google.android.gms:play-services-base @@ 17.1.0:17)在com.google.android.gms.common.api.internal.ListenerHolder $ zaa.handleMessage(com.google.android.gms:play-services-base @@ 17.1.0:6)在android.os.Handler.dispatchMessage(Handler.java:112)在com.google.android.gms.internal.base.zar.dispatchMessage(com.google.android.gms:play-services-base @@ 17.1.0:8)在android.os.Looper.loop(Looper.java:216)在android.app.ActivityThread.main(ActivityThread.java:7625)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:524)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
[如果有人可以帮忙,我将按照每行代码行完全与本Uber教程中的一样,当我运行该应用程序时,出现此错误:NoSuchMethodError:没有虚拟方法removeValueAsync()... I ...
您是否检查了正在使用的FirebaseUI
的版本是否与其他Firebase
和Google Play
库兼容?
在这里https://github.com/firebase/FirebaseUI-Android#compatibility-with-firebase--google-play-services-libraries,您可以找到一个兼容性表。