0

我正在使用以下应用程序构建 gradle 配置开发 android 应用程序:

应用插件:'com.android.application'

安卓 {
    compileSdkVersion 23
    构建工具版本“23.0.1”

    默认配置 {
        应用程序ID“com.test.app”
        minSdkVersion 15
        targetSdkVersion 23
        版本代码 1
        版本名称“1.0”
    }
    构建类型 {
        发布 {
            缩小启用假
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

依赖{
    编译文件树(包括:['*.jar'],目录:'libs')
    测试编译'junit:junit:4.12'
    编译'io.reactivex:rxandroid:1.1.0'
    编译'io.reactivex:rxjava:1.1.0'
    编译'com.android.support:appcompat-v7:23.2.0'
    编译'com.android.support:support-v4:23.2.0'
    编译'com.google.code.gson:gson:2.6.2'
    编译'org.apache.commons:commons-lang3:3.4'
    编译'com.android.support:design:23.0.0'
}

和带有 xml 配置的简单 PreferenceFragment:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference android:title="Application Updates"
    android:defaultValue="false"
    android:summary="Simple check box preference."
    android:key="applicationUpdates" />

当我在具有 api 级别 23 的设备上运行应用程序时,一切正常,但是当我在具有 api 15 的模拟器上运行相同的代码时出现错误:

03-09 19:38:01.205 1541-1541/com.test.app E/AndroidRuntime: android.view.InflateException: 二进制 XML 文件行 #19: 类 android.widget.CheckBox 膨胀错误
...
一些代码
...
03-09 19:38:01.205 1541-1541/com.test.app E/AndroidRuntime: 原因: java.lang.reflect.InvocationTargetException
...
一些代码
...
03-09 19:38:01.205 1541-1541/com.test.app E/AndroidRuntime: 由: android.content.res.Resources$NotFoundException: 文件 res/drawable/abc_btn_check_mat

我认为材料设计库有问题,但我不确定,也不知道如何解决这个问题。我想在带有 sdk 15 的设备上运行应用程序,但我不能。我该如何解决这个问题?

PS。当我从 xml 配置中删除 CheckBoxPreference 时,我的应用程序正在使用 api 15 和 api 23。

4

1 回答 1

0

我找到了解决方案。通过添加以下内容解决了此问题:

aaptOptions {
        附加参数“--no-version-vectors”
    }

应用程序构建 gradle。

于 2016-03-10T16:58:42.973 回答