簡體   English   中英

從火場訪問位置時,Android Studio應用程序停止

[英]Android Studio app stops when location is accessed from fire base

當前活動頁面接受先前活動的用戶ID,並搜索相應的用戶並在地圖上標記其位置。

沒有編譯錯誤。 每當我在移動設備上訪問此活動時,應用程序就會崩潰。

public class map extends FragmentActivity implements OnMapReadyCallback {
private String UserID;
private GoogleMap mMap;
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private studetails stu;

//private LocationListener Locationlistener;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    UserID = getIntent().getExtras().getString("UserId");
    DocumentReference doc = db.collection("Userdetails").document(UserID);
    doc.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) {
            stu = documentSnapshot.toObject(studetails.class);
        }
    });

    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);

    //ActivityCompat.requestPermissions( activity: this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, PackageManager.PERMISSION_GRANTED);
    //ActivityCompat.requestPermissions( activity: this,new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PackageManager.PERMISSION_GRANTED);
}


@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    Location loc;
    loc = stu.getlocation();
    // Add a marker in Sydney and move the camera
    LatLng sydney = new LatLng(loc.getLatitude(), loc.getLongitude());
    mMap.addMarker(new MarkerOptions().position(sydney).title("Busstop"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}

}

用於將數據推送到Firestore中的自定義對象

我是android-studio的新手,如果錯過任何相關信息,請在下面提及。

數據庫結構

APP崩潰前的部分日志文件

根據您的日志, FirebaseApp is not initialized in this process 我懷疑這是引起您問題的原因:

FirebaseFirestore db = FirebaseFirestore.getInstance();

與創建類實例時一樣,即使尚未正確設置FirebaseApp,它也會自動嘗試獲取默認的Firestore實例。

不要在聲明中初始化db ,而應onCreate ,特別是在調用FirebaseApp.initializeApp(this)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM