Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的谷歌地图缩放错误_Android_Google Maps - Fatal编程技术网

android中的谷歌地图缩放错误

android中的谷歌地图缩放错误,android,google-maps,Android,Google Maps,在emulator上缩放地图时,经过一定程度后,emulator停止,我的logcat中出现以下错误: distrib/android emugl//host/libs/Translator/GLES\u CM//GLEScmImp.cpp:glColorPointer:433错误0x501 这个错误与我的代码有关吗 以下是xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xm

在emulator上缩放地图时,经过一定程度后,emulator停止,我的logcat中出现以下错误:

distrib/android emugl//host/libs/Translator/GLES\u CM//GLEScmImp.cpp:glColorPointer:433错误0x501

这个错误与我的代码有关吗

以下是xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.subham.gmaps.details">

    <fragment
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/mapView"
        android:name="com.google.android.gms.maps.MapFragment"
    />

</LinearLayout>

生成地图的代码:

public class details extends ActionBarActivity {

    public String sourceAddress;
    public String destAddress;
    public double lat1 = 0.0, lng1 = 0.0, lat2 = 0.0, lng2 = 0.0;
    GoogleMap googleMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_details);
        Intent i = getIntent();
        if(i != null)
        {
            sourceAddress = i.getStringExtra("source");
            destAddress = i.getStringExtra("destination");
            Geocoder geocoder = new Geocoder(this, Locale.getDefault());
            try{
                List<Address> sourceAddressList = geocoder.getFromLocationName(sourceAddress, 1);
                List<Address> destAddressList = geocoder.getFromLocationName(destAddress, 1);

                if(sourceAddressList.size()>0)
                {
                    GeoPoint p1 = new GeoPoint((int)(sourceAddressList.get(0).getLatitude()*1E6), (int)(sourceAddressList.get(0).getLongitude()*1E6));
                    GeoPoint p2 = new GeoPoint((int)(destAddressList.get(0).getLatitude()*1E6), (int)(destAddressList.get(0).getLongitude()*1E6));
                    lat1 = p1.getLatitudeE6()/1E6;
                    lng1 = p1.getLongitudeE6()/1E6;
                    lat2 = p2.getLatitudeE6()/1E6;
                    lng2 = p2.getLongitudeE6()/1E6;
                }
                createMapView();
                addMarker();
            }
            catch(Exception e)
            {
                Log.d("Exception", e.getMessage());
            }
        }
    }


    private void createMapView()
    {
        try{
            if(googleMap == null)
            {
                googleMap = ((MapFragment)getFragmentManager().findFragmentById(R.id.mapView)).getMap();
                if(googleMap == null)
                {
                    Toast.makeText(getApplicationContext(), "Error creating map", Toast.LENGTH_SHORT).show();
                }
            }
        }
        catch (Exception e)
        {
            Log.d("Exception", e.getMessage());
        }
    }

    private void addMarker()
    {
        if(googleMap != null)
        {
            googleMap.addMarker(new MarkerOptions().position(new LatLng(lat1, lng1)).title(sourceAddress));
            googleMap.addMarker(new MarkerOptions().position(new LatLng(lat2, lng2)).title(destAddress));
        }
    }
公共类详细信息扩展了ActionBarActivity{
公共字符串源地址;
公共字符串地址;
公共双lat1=0.0,lng1=0.0,lat2=0.0,lng2=0.0;
谷歌地图谷歌地图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_详细信息);
Intent i=getIntent();
如果(i!=null)
{
sourceAddress=i.getStringExtra(“源”);
destAddress=i.getStringExtra(“目的地”);
Geocoder Geocoder=新的Geocoder(这个,Locale.getDefault());
试一试{
List sourceAddressList=geocoder.getFromLocationName(sourceAddress,1);
List destAddressList=geocoder.getFromLocationName(destAddress,1);
if(sourceAddressList.size()>0)
{
地理点p1=新的地理点((int)(sourceAddressList.get(0.getLatitude()*1E6),(int)(sourceAddressList.get(0.getLatitude()*1E6));
地理点p2=新的地理点((int)(destAddressList.get(0.getLatitude()*1E6),(int)(destAddressList.get(0.getLatitude()*1E6));
lat1=p1.getLatitudeE6()/1E6;
lng1=p1.getLongitudeE6()/1E6;
lat2=p2.getLatitudeE6()/1E6;
lng2=p2.getLongitudeE6()/1E6;
}
createMapView();
addMarker();
}
捕获(例外e)
{
Log.d(“异常”,例如getMessage());
}
}
}
私有void createMapView()
{
试一试{
if(googleMap==null)
{
googleMap=((MapFragment)getFragmentManager().findFragmentById(R.id.mapView)).getMap();
if(googleMap==null)
{
Toast.makeText(getApplicationContext(),“创建映射时出错”,Toast.LENGTH_SHORT.show();
}
}
}
捕获(例外e)
{
Log.d(“异常”,例如getMessage());
}
}
私有void addMarker()
{
if(谷歌地图!=null)
{
addMarker(newmarkeroptions().position(newlatlng(lat1,lng1)).title(sourceAddress));
addMarker(newmarkeroptions().position(newlatlng(lat2,lng2)).title(destAddress));
}
}
这里,我首先从用户(源和目标)获取位置在一个活动中,然后将这些详细信息传递给下一个活动,该活动计算位置的纬度和经度并生成地图。我没有修改任何缩放设置。地图本身可以缩放。这里有什么问题?

如本文所述,禁用主机GPU应该可以解决使用模拟器时的问题


跟踪可能发布的任何修复程序的此问题。主机GPU支持可大大提高您的VM性能,并且必须将其禁用与车库中的Lambo无法驾驶是一样的。

部署应用程序时,不会出现任何问题,对吗?一点也不会。这是AVD独有的功能。