3

我有谷歌地图的问题。当我第一次执行我的应用程序时,地图正常显示,但是当我关闭并再次执行时,地图的屏幕是黑色的。我不知道会发生什么,但是当我清理应用程序的所有数据时,地图再次显示。

第一次:

在此处输入图像描述

第二次(当我关闭应用程序并再次执行时)

在此处输入图像描述

我正在使用带有 androidx86 项目的虚拟框

你能帮助我吗?

我的代码,我在哪里设置地图:

private void setUpMapIfNeeded() {
        if (map == null) {
            map = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
        }
            if (map != null) {
                try{
                    map.setMyLocationEnabled(true);
                    map.setOnMyLocationButtonClickListener(this);
                    map.setOnMapLongClickListener(this);
                    map.setOnMarkerClickListener(this);
                    map.setOnMapClickListener(this);
                    map.setOnCameraChangeListener(this);
                    LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
                    Criteria criteria = new Criteria();
                    String provider = locationManager.getBestProvider(criteria, true);
                    Location location = locationManager.getLastKnownLocation(provider);
                    if(location!=null){
                        double latitude = location.getLatitude();
                        double longitude = location.getLongitude();
                        LatLng latLng = new LatLng(latitude, longitude);
                        //ThreadMostraImoveisJson(latLng);
                        onLocationChanged(location);
                    }           
                }
                catch (Exception ex){
                    Log.e("Erro Mapa", "Erro Setar Mapa: "+ex.getMessage());
                }
            }
    }

我的 XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapHost"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<fragment
      android:id="@+id/map"
       android:name="com.google.android.gms.maps.SupportMapFragment"
       android:layout_width="match_parent"
       android:layout_height="match_parent" >
</fragment>
   <LinearLayout 
    android:id="@+id/layPesquisa"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#f4f4f4"
    android:orientation="horizontal"
    android:layout_gravity="right">

    <Button
        android:id="@+id/btnPesquisa"
       android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="OK" />

    <EditText
        android:id="@+id/edtPesquisa"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible"
         android:text="" 
     />

</LinearLayout>
</FrameLayout>
4

3 回答 3

3

这是一个全新的错误。

请参阅 Google 的问题跟踪器:

https://code.google.com/p/gmaps-api-issues/issues/detail?id=4659

https://code.google.com/p/gmaps-api-issues/issues/detail?id=5767

于 2013-08-30T16:17:05.197 回答
1

在邮件线程中找到此问题的简单解决方法。这解决了我的问题。使用相对布局并将这个透明视图直接放在您的地图片段上。例子 :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

    <fragment
      android:id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      class="com.google.android.gms.maps.SupportMapFragment"/>

    <View
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="@android:color/transparent" />
</RelativeLayout>
于 2014-06-12T13:50:15.777 回答
1

我遇到了 MapFragment 显示为黑色的问题。在我使用的 AndroidManifest 中:

<supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="false" />

这里将 anyDensity 设置为 false 使其显示为黑色。我将其设置回 true 并且对我有用

于 2015-11-02T01:48:28.547 回答