【问题标题】:Android: Error While Connecting firebase and Google Maps Activity TogetherAndroid:同时连接 firebase 和 Google Maps Activity 时出错
【发布时间】:2017-03-15 04:50:24
【问题描述】:
package com.example.dhrumit.google_maps;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;

public class MapsActivity extends FragmentActivity implements      OnMapReadyCallback {

private GoogleMap mMap;
public FirebaseDatabase database;
public DatabaseReference mRef ;
public Query query;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    database = FirebaseDatabase.getInstance();
    mRef = database.getReference().child("users");
    query= mRef.orderByChild("phone");
    SupportMapFragment mapFragment = (SupportMapFragment)  getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);

}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            LatLngBounds.Builder builder = new LatLngBounds.Builder();
            for (DataSnapshot postDataSnapshot : dataSnapshot.getChildren())
            {
                Double Latitude = (Double)       postDataSnapshot.child("latitude").getValue();
                Double Longitude = (Double) postDataSnapshot.child("longitude").getValue();
                String Name =  (String) postDataSnapshot.child("name").getValue();
                LatLng Location = new LatLng(Latitude, Longitude);
                mMap.addMarker(new MarkerOptions().position(Location).title(Name));
                builder.include(Location);
            }
            LatLngBounds bounds = builder.build();
            CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds,0);
            mMap.animateCamera(cameraUpdate);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

我已经编写了上面的代码来创建一个谷歌地图活动来显示带有标记的地图,标记的位置是从 firebase 数据库中获取的,但是 我遇到了如下所示的运行时错误。

java.lang.NoSuchMethodError: No virtual method zzTt()Z in class        Lcom/google/firebase/FirebaseApp; or its super classes (declaration of 'com.google.firebase.FirebaseApp' appears in /data/app/com.example.dhrumit.google_maps-1/split_lib_dependencies_apk.apk:classes7.dex)
                                                                                               **at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)
                                                                                     at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)**
                                                                                     at com.example.dhrumit.google_maps.MapsActivity.onCreate(MapsActivity.java:35)
                                                                                     at android.app.Activity.performCreate(Activity.java:6033)
                                                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                                                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                                                     at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                     at android.os.Looper.loop(Looper.java:135)
                                                                                     at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                                                     at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
                                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)

【问题讨论】:

  • 你能发布你正在使用的依赖项吗?
  • dependencies dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.google.android.gms:play-services-maps:10.2.0' compile 'com.google.firebase:firebase-database:10.0.1' testCompile 'junit:junit:4.12' } 以上是我使用的依赖 @Minkoo
  • 尝试将所有依赖项放在同一级别。您的 firebase 级别为 10.0.1,gms 级别为 10.2.0。让它一样。
  • 他们已经达到你提到的水平@Minkoo
  • 尝试相同的播放服务和 firebase 版本。您的代码似乎有所不同。

标签: android google-maps firebase firebase-realtime-database


【解决方案1】:

这是由于 Firebase 数据库Google Play 服务 的依赖版本不同所致。使它们相同或使用以下依赖项,问题将得到解决。

compile 'com.google.firebase:firebase-database:11.4.2'
compile 'com.google.firebase:firebase-auth:11.4.2'
compile 'com.google.android.gms:play-services-maps:11.4.2'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多