【问题标题】:Unable to start activity ComponentInfo android.view.InflateException: Binary XML file line #31无法启动活动 ComponentInfo android.view.InflateException:二进制 XML 文件行 #31
【发布时间】:2016-05-23 22:46:41
【问题描述】:

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

启动PreferenceActivity时,出现如下错误:

java.lang.RuntimeException:无法启动活动 组件信息{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 版本中发生时,这是另一个问题:为什么兼容性如此频繁地被破坏。

【问题讨论】:

  • 请分享您的整个 logcat。还有更多例外

标签: java android xml


【解决方案1】:

使用我的源代码控制系统,我进行了二进制搜索(叹气)以找到第一次出现错误的变更集,并且当我将 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 tools 23.0.1 版(最新)有一个bug .问题是我无法更新到 API 版本 23 并在 Android 6 处理权限时正确检查权限,但我无法解决这个问题,API 工具不起作用。

【讨论】:

    【解决方案2】:

    在您的 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"/>
    

    【讨论】:

    • 幸运的是,我自己使用了源代码控制版本工具,所以我正在做二进制搜索来找出是什么破坏了更改。我对应用一些 Lint 建议持怀疑态度,这不是第一次......在应用 Lint 所说的内容时必须小心,有时这些建议不适用于你的情况:(
    猜你喜欢
    • 2013-01-31
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多