android中的谷歌地图缩放错误
在emulator上缩放地图时,经过一定程度后,emulator停止,我的logcat中出现以下错误: distrib/android emugl//host/libs/Translator/GLES\u CM//GLEScmImp.cpp:glColorPointer:433错误0x501 这个错误与我的代码有关吗 以下是xml: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
<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独有的功能。