折腾:
【未解决】Android Studio中用PreferenceFragmentCompat实现rcsjta的tts的参数设置页面
期间,把rcsjta的子项目tts的gradle配置改为:
/RCS/rcsjta/samples/api/tts/build.gradle
dependencies { implementation project(':api') // implementation 'com.android.support:support-v4:25.0.1' implementation 'com.android.support:preference-v7:26.+' // def preference_version = "1.1.1" // implementation "androidx.preference:preference:$preference_version" }
即用了preference-v7:26.+
然后重新编译就报错
参考
用:
build.gradle
dependencies { implementation project(':api') // implementation 'com.android.support:support-v4:25.0.1' implementation 'com.android.support:preference-v7:26.+' // def preference_version = "1.1.1" // implementation "androidx.preference:preference:$preference_version" }
然后:
竟然也报错
/Users/xxx/.gradle/caches/transforms-2/files-2.1/d83d1b2906b010fc2c13f0c9b7d3c61d/appcompat-v7-26.1.0/res/values-v26/values-v26.xml:5:5-8:13: AAPT: error: resource android:attr/colorError not found.
看起来像是cache 问题,但是rebuild之前已clean了。不应该啊
算了,还是换回:
implementation 'com.android.support:support-v4:25.0.1' // implementation 'com.android.support:preference-v7:26.+'
结果:
就没了上述问题了。
然后根据
是api的28或29之后才会对于PreferenceFragment过期
而此处api设置的都是23左右,按道理不应该过期才对
所以感觉还是去用PreferenceFragment?
看起来,好像还是要加上preference-v7才行
所以还是去回到:
// implementation 'com.android.support:support-v4:25.0.1' implementation 'com.android.support:preference-v7:26.+'
然后去解决错误:
values-v26.xml AAPT error resource android attr colorError not found
说是:
mFlavor { minSdkVersion 16 compileSdkVersion 28 targetSdkVersion 28 motoFlavor { minSdkVersion 14 compileSdkVersion 25 targetSdkVersion 25
编译的sdk用的是25
但是用的资源却是28的
所以找不到
所以要,改为统一的28
那么此处看来也是类似逻辑了?
确保compileSdkVersion和buildToolsVersion是一致的版本
举例:
compileSdkVersion 26 buildToolsVersion '26.0.2' ... dependencies { ... compile 'com.android.support:appcompat-v7:26.0.2' }
和:
compileSdkVersion 26 buildToolsVersion "26.0.0-beta2"
去改为:
// project.ext.set("compileSdkVersion", 23) // project.ext.set("minSdkVersion", 12) // project.ext.set("targetSdkVersion", 23) ext { // compileSdkVersion = 23 compileSdkVersion = 26 // minSdkVersion = 12 // minSdkVersion = 23 minSdkVersion = 14 // targetSdkVersion = 23 targetSdkVersion = 26 } //project.ext.set("buildToolsVersion", "24.0.0")
其中好像是buildToolsVersion 已废弃?都改成了compileSdkVersion?
clean后
重新编译
即可。
【总结】
此处,tts/build.gradle
中改为:
implementation 'com.android.support:preference-v7:26.+'
编译报错:
values-v26.xml:5:5-8:13: AAPT: error: resource android:attr/colorError not found
原因:
此处compileSdkVersion(和buildToolsVersion)
(引用根目录中的)
ext { compileSdkVersion = 23 targetSdkVersion = 23 }
和此处的
com.android.support:preference-v7:26.+
中的:26.+,即api level 26
不兼容不一致,导致旧版本的23中的appt找不到一些内容而报错
解决办法:
让compileSdkVersion(和buildToolsVersion)版本一致
即改为:
ext { targetSdkVersion = 26 }
即可。
其中:
- api level 26 =sdk 26 = Android 8.0.0 = Oreo
转载请注明:在路上 » 【已解决】Android中用preference-v7后编译报错:values-v26.xml AAPT error resource android attr colorError not found