安卓-支持库23.2.0导致应用崩溃。

14

我的应用程序可以与支持库23.1.0或23.1.1很好地配合使用,但当我开始使用23.2.0时,它在启动时崩溃。 我使用了五个支持库,但似乎导致崩溃的是这两个:

com.android.support:appcompat-v7:23.2.0

com.android.support:design:23.2.0

我在我的Galaxy Nexus (API 17)上遇到了这个问题,但在我的Nexus 7 (API 22)上没有遇到。 有人知道可能出现什么问题吗? 这是我的gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.ikarirobotics.aichordfinder"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-annotations:23.2.0'
    compile "com.android.support:appcompat-v7:23.2.0"
    compile 'com.android.support:design:23.2.0'
    compile 'com.android.support:cardview-v7:23.2.0'
    compile 'com.android.support:recyclerview-v7:23.2.0'
}

我的布局只是一个框架,我在其中放置当前适当的片段:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="HomeActivity"
    tools:ignore="MergeRootFrame" />

通过调试器,我发现崩溃发生在主活动调用setContentView()时:

java.lang.reflect.InvocationTargetException

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ikarirobotics.aichordfinder/com.ikarirobotics.aichordfinder.HomeActivity}: android.view.InflateException: Binary XML file line #36: Error inflating class android.support.v7.widget.Toolbar

我的活动扩展了AppCompatActivity,并使用支持操作栏。有任何解决此问题的想法吗?:(


Gradle日志只显示整个构建成功。我添加了使用调试器找到的信息。它似乎与工具栏有关。 - CesarPim
你是否正在使用矢量可绘制图形? - Lukas Lechner
不。此外,第一个片段仅包含文本条目和一个FAB。 - CesarPim
5个回答

5

谷歌正在解决一个可绘制的突变缺陷问题,这个问题将在23.2.0版本中发布时解决。 点击此处查看问题详情。 在下一个修复补丁发布之前退回到23.1.1版本应该没问题。


你的链接似乎是关于旋转器的。你认为这是同样的问题吗? - CesarPim

4

我也遇到了同样的问题。我通过在support:design中回退到23.1.1版本来部分解决了它。


1
如果您找到了使用23.2.0的解决方案,请在此处发布。 - CesarPim
4
我认为“修复”和“还原”并不是同一回事。 - Jared Burrows

2

@CesarPim 是的,我有一个与 CheckBox 相同的问题,虽然我可以通过在 drawable 文件夹内创建 abc_btn_check_material.xml 并添加以下行来解决该问题,但我无法确定下一个问题会出现在哪里。您可以在此链接中找到绘图和选择器代码: https://github.com/NativeScript/nativescript-plugin-appcompat/tree/master/platforms/android/appcompat/res/drawable

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/abc_btn_check_to_on_mtrl_015" />
    <item android:drawable="@drawable/abc_btn_check_to_on_mtrl_000" />
</selector>

1
哦,谢谢提供信息。那么可以说问题出在谷歌这边吗?我的问题似乎与我的工具栏有关,除了标题什么也没有...这真的很奇怪。 - CesarPim

1

我自己遇到了这个问题。通过SDK管理器快速更新似乎解决了这个问题。

另外,我的build.gradle依赖项实际上都没有使用23.2.0版本,但我仍然收到了错误提示。尝试“降级”到23.1.1对我来说不是一个选项,因为我已经在使用那个版本了。


什么意思?通过sdk更新什么?我的问题存在于我使用23.2.0时,而不是我使用23.1.1时。 - CesarPim

1

正如一些人所预测的那样,当我开始使用23.2.1支持库时,问题消失了。感谢大家的支持。


你是不是想说23.1.1或者23.2.1?因为23.2.1对我来说不起作用,尽管我已经下载了它。 - Radu
我的意思是23.2.1。问题似乎只存在于23.2.0中。在我的情况下,23.1.1和23.2.1都可以正常工作。你下载后改变了你的gradle文件吗? - CesarPim
我当然修改了gradle文件,下载了23.2.1支持库,但是没有效果。它只是说找不到它。我也在使用支持库的块:cardview,whatever....等等。也许这就是原因。你能把你的gradle编译支持库的代码行粘贴过来吗?如果你只有一个的话? - Radu
@Radu,正如您在我的帖子中所看到的,我将其分成了几行。现在使用23.2.1: 依赖项 { 编译'com.android.support:support-annotations:23.2.1' 编译'com.android.support:appcompat-v7:23.2.1' 编译'com.android.support:design:23.2.1' 编译'com.android.support:cardview-v7:23.2.1' 编译'com.android.support:recyclerview-v7:23.2.1' } - CesarPim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接