我在我的项目中使用Google地图V2,我在baseadapter类中实例化地图(在listview中设置),
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="fill_parent"
android:layout_height="500dp"
android:layout_margin="10dp" />
Java代码:
private void setUpMap()
{
// Do a null check to confirm that we have not already instantiated the map.
if (ViewHolder.mMap == null)
{
android.app.FragmentManager fm = ((Activity) context).getFragmentManager();
// Try to obtain the map from the SupportMapFragment.
ViewHolder.mMap = ((MapFragment) fm.findFragmentById(R.id.map)).getMap();
//=======clear old marker====
ViewHolder.mMap.clear();
// Check if we were successful in obtaining the map.
if (ViewHolder.mMap != null)
{
ViewHolder.mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener()
{
@Override
public boolean onMarkerClick(com.google.android.gms.maps.model.Marker marker)
{
marker.showInfoWindow();
return true;
}
});
}
else
Toast.makeText(context, "Unable to create Maps", Toast.LENGTH_SHORT).show();
}
}
我已获得地图的所有已知权限。
<permission android:name="com.the.app.rr.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="******_n3wx2Ga-6lBLpD1v56SXs3IIxEqyKw" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
我在最近两天的工作,并检查所有,任何事情对我没有用..
来自Google的日志。
1。 I / Google Maps Android API(26592):Google Play服务包版本:5089038
2。解析Lcom / google / android / gms / location / internal / ParcelableGeofence失败;界面4023&#39; Lglm;&#39;
3。找不到类&#39; com.google.android.gms.location.internal.ParcelableGeofence&#39;,从方法gls.a中引用了
4。无法加载地图。联系Google服务器时出错这可能是一个身份验证问题(但可能是由于网络错误)。
有人可以帮忙吗?
答案 0 :(得分:0)
您在检查ViewHolder.mMap.clear()
ViewHolder.mMap != null
您是否从setUpMap
致电onCreate
?如果是,我会尝试将其移至onResume
,以便在生命周期的后期阶段完成地图处理。
如果ViewHolder.mMap == null
,我会致电MapsInitializer.initialize(getActivity())
以确保启动GoogleMap初始化。它没有必要,但可以提供帮助。
之前我遇到过这个问题,我意识到这是由于API密钥造成的。我必须generate a fresh Android key在我的本地机器上使用调试密钥库,因为android工作室正在使用它进行构建。在我的情况下,我必须得到SHA1:
keytool -list -v -keystore %HOMEPATH%\.android\debug.keystore
另一个潜在的问题是您在Android应用中使用的Google Play服务库版本与设备或模拟器上的播放服务apk版本之间的不匹配。他们需要匹配或至少应用程序上的那个应该更少或相等。您可以通过Settings -> Apps -> Downloaded -> Google Play Services
在设备或模拟器上找到Google Play服务版本。如果此版本低于您在Android应用程序中使用的库版本,我会尝试使用旧版本库。