NoSuchMethodError: Нет виртуального метода removeValueAsync () - PullRequest
0 голосов
/ 25 сентября 2019

если кто-то может помочь, я следую за строкой кода в каждой строке точно так же, как в этом уроке 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: FATAL EXCEPTION: main Процесс: com.e.uber, PID: 31292 java.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) в com.e.uber.DriM.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) по тел.google.android.gms.internal.base.zar.dispatchMessage (com.google.android.gms: Play-сервисная база @@ 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)

1 Ответ

0 голосов
/ 25 сентября 2019

Вы проверяли, совместима ли используемая вами версия FirebaseUI с другими библиотеками Firebase и Google Play?

Здесь https://github.com/firebase/FirebaseUI-Android#compatibility-with-firebase--google-play-services-libraries вы можете найти таблицу совместимости.

Кроме того, если вы запускаете приложение в эмуляторе, проверьте, использует ли оно самую последнюю версию для Google Play Services.

...