我无法在
Android M上显示谷歌地图.
Here is layout xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:wheel="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <include layout="@layout/toolbar_layout" android:layout_width="match_parent" android:layout_height="wrap_content"/> <LinearLayout android:orientation="vertical" android:id="@+id/content_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment class="com.google.android.gms.maps.SupportMapFragment" android:id="@+id/googleMap" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_gravity="center" /> </LinearLayout> </LinearLayout>
AndroidManifest File:
<permission android:name="com.xxx.yyy.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="com.xxx.yyy.permission.MAPS_RECEIVE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
And inside application tag:
<Meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/maps_api_key" /> <Meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
我在运行时请求权限:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED || checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION},PERMISSION_REQUEST_COARSE_LOCATION); }
这是回调:
@Override public void onRequestPermissionsResult(int requestCode,String permissions[],int[] grantResults) { switch (requestCode) { case PERMISSION_REQUEST_COARSE_LOCATION: { if (grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) { //Access Location } else { Utils.showToast(getApplicationContext(),"Until you grant the permissions,You cannot Access Location Service"); } } break; } }
我得到了这个例外
“android.view.InflateException:二进制XML文件行#:错误扩充类片段”仅在Android 6上.
它显示的地图在其他版本的android上没有任何问题.请帮我.
你在Android-M设备上有SD卡吗?如果不是,请插入SD卡并重试.