android - 二进制 XML 文件行 # : Error inflating class fragment : Only on Android (6. 0)-Marshmallow

标签 android google-maps android-fragments android-manifest android-6.0-marshmallow

我无法在 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: Binary XML file line #: Error inflating class fragment”仅在 Android 6 上。

它在其余 android 版本上显示 map 没有任何问题。请帮我。

最佳答案

您的 Android-M 设备上有 SD 卡吗?如果不是,请插入 SD 卡并重试。

关于android - 二进制 XML 文件行 # : Error inflating class fragment : Only on Android (6. 0)-Marshmallow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34488967/

相关文章:

android - 通过 Intent with Image (Photo) 插入联系人 (ContactsContract)

数据库设计、谷歌地图和地址字段

java - 如何使用 SQL-lite 数据库检索 android studio 中的单选按钮组

android - 如何替换旧 API<21 中的 NestedScrollView?

android - 如何修改android中的最后一次通话记录

Android:如何使用动态 TextView 为不同的屏幕尺寸设置不同的文本尺寸?

android - Android YouTube播放器获取当前帧

android - android中的谷歌地图,以小尺寸 map View 显示

Android Maps API v2 画圈

java - Android:从 PagerAdapter 获取 fragment