我正在使用以下应用程序构建 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。