마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 구글맵 오류코드없는데 실행이안되요...

0 추천
코드는 이렇습니다...
오류코드는 안뜨는데 avd실행이 안되네요...
어느곳이 문제일까요.... (기본 구글맵만 띄우는건 실행이됩니다..)
 
 
 
 
 
package com.cookandroid.cookmap;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import android.widget.Toast;

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.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.GroundOverlayOptions;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

public class Main2Activity extends AppCompatActivity implements OnMapReadyCallback {

    static final LatLng SEOUL = new LatLng(37.5665, 126.9780);
    static final LatLng INCHEON = new LatLng(37.4000, 126.6100);
    private GoogleMap map;
    Marker seoul, incheon, here;
    GroundOverlayOptions videoMark;
    LatLng myPosition;

    @RequiresApi(api = Build.VERSION_CODES.M)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        Criteria criteria = new Criteria(); //베스트 프로바이더 기준
        String provider = locationManager.getBestProvider(criteria, true);
        if (checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return;
        }
        Location location = locationManager.getLastKnownLocation(provider);
        if (location != null){
            double latitude = location.getLatitude();
            double longitude = location.getLongitude();
            myPosition = new LatLng(latitude, longitude);
        }
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        map = googleMap;
        map.setMyLocationEnabled(true);

        map.getUiSettings().setZoomControlsEnabled(true);
        map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
            @Override
            public void onMapClick(LatLng latLng) {
                videoMark = new GroundOverlayOptions().image(BitmapDescriptorFactory.
                        fromResource(R.drawable.presence_video_busy)).position(latLng, 100f, 100f);
                map.addGroundOverlay(videoMark);
            }
        });
        seoul = map.addMarker(new MarkerOptions().position(SEOUL).title("서울"));
        here = map.addMarker(new MarkerOptions().position(myPosition).title("여기"));
        incheon = map.addMarker(new MarkerOptions().position(INCHEON).title("인천")
                .snippet("항구").icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher)));
        map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {

            @Override
            public boolean onMarkerClick(Marker marker) {
                LatLng latLng = marker.getPosition();
                String title = marker.getTitle();
                Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
                intent.putExtra("lat", latLng.latitude);
                intent.putExtra("lng", latLng.longitude);
                intent.putExtra("title", title);
                startActivity(intent);
                //Toast.makeText(getApplicationContext(),"위도:"+latLng.latitude+",경도:"+latLng.longitude,Toast.LENGTH_SHORT).show();
                return false;
            }
        });
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(SEOUL, 15));
        map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
    }
}
초보자뉴비 (120 포인트) 님이 2020년 7월 4일 질문

1개의 답변

0 추천

질문 하시는게 에뮬레이터가 실행이 안된다는건가요? 아니면 기본 구글맵은 된다는건가요 

그리고 locationManager쓰지 마세요 구글에서 제공해주는  FusedLocationProviderClient 쓰세요 속도차이떄매 안뜨는거일수도잇어요 

 

일단 체크해보셔야될게 현재 위치 즉 lat lng 값이 잇는지부터 확인해보세요 없으면 방금말씀드린것처럼 바꿔보시고 권한도 체크해보세요 

 

 
 
공과근성 (6,020 포인트) 님이 2020년 7월 5일 답변
...