无法启动活动ComponentInfo android.view.InflateException:二进制XML文件行#31

时间:2016-05-22 16:27:31

标签: java android xml

我在Android版本5.x中遇到问题,在Android 4.3中无法重现。

启动PreferenceActivity时,会出现以下错误:

  

java.lang.RuntimeException:无法启动活动   ComponentInfo {com.xxxx.yyyy / com.xxxx.yyyy.view.SettingsActivity}:   android.view.InflateException:二进制XML文件行#31:二进制XML   文件行#31:错误导致类

我出于某些原因浏览网页,但他们说这个错误可能会因为几个不同的原因而发生,不知道究竟发生了什么,也无法解决问题。

如果我清空preferences.xml错误就在那里,如果我启动另一个DummyActivity(空白活动)它会再次发生,所以错误可能是......在应用程序的其他地方!!

来电者活动是地图活动;我已经读到这可能是一个问题,但我是使用最新文档开始的:

((SupportMapFragment) mContext.getSupportFragmentManager()
            .findFragmentById(R.id.map))
            .getMapAsync(new OnMapReadyCallback() {
                @Override
                public void onMapReady(GoogleMap map) {
                    mMap = map;
                    setUpMap();
                }
            });

使用getSupportFragmentManager和异步调用。

有什么想法吗?我不能只搜索整个应用程序寻找此错误! Android应该为这类问题提供更多人类可读的信息......特别是当它们不会在每个Android版本中发生时,这是另一个问题:为什么兼容性经常被破坏。

2 个答案:

答案 0 :(得分:0)

在xml文件中提及android:name = "com.packagename.Activityname"

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:name="com.packagename.Activityname"/>

答案 1 :(得分:0)

使用我的源代码控制系统,我进行了二元搜索(叹气)以找到第一次出现错误的变更集,当我将sdk目标版本更新为 API 23(Android 6.0,权限更改)时,它匹配)一切都破碎

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'com.google.android.gms:play-services-maps:8.4.0'
}

我已经搜索过,有更多人遇到同样问题,所以在我看来那里有sdk工具版本23.0.1中的错误(最新版本) )即可。问题是我无法更新到API版本23并在Android 6处理它们时正确检查权限,但我无法解决这个问题,API工具无法正常工作。