Information:Gradle tasks [:app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources]
Error:In <declare-styleable> FontFamilyFont, unable to find attribute android:font
Error:In <declare-styleable> FontFamilyFont, unable to find attribute android:fontWeight
Error:Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt
Information:BUILD FAILED
复制代码
你是否是也遇到过这种问题,而不知道从何下手?明明所有版本都已经修改过了,为何仍是会出现这种错误?咱们带着心中的小疑惑来看一下这是为何以及他的解决办法。进入正题,先说下出现这个问题的缘由:android
具体解决方案:bash
把工程的build.gradle文件中的compileSdkVersion及buildToolsVersion的版本设成一致。以下图所示app
经过第一点的改正,咱们排除了compileSdkVersion 和buildToolsVersion 的版本不对应的问题。可是仍是没有彻底解决掉该问题。我们接着往下看ide
因为是导入别人的项目,对于dependencies{}中依赖的项目须要挨个排查依赖库使用的v4或者v7包的版本,最后找出缘由并剔除类库中的support-v4,统一使用本身工程的就OK了(其余相似问题同理解决) 例如AndroidPicker类,修改以下gradle
compile('cn.qqtheme.framework:WheelPicker:latest.release') { exclude group: 'com.android.support' }
复制代码
对于不是本身的项目而项目自己又有不少依赖的时候,这个工做量是巨大且盲目的,所有都查一遍的话是要疯掉的。不要紧,我们有简单粗暴并且有效的办法,我们在configurations.all{}修正v4包版本的版本信息,以下所示ui
android {
configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:25.3.1'
}
}
复制代码
让咱们愉快的运行起来,忽然发现仍是报相同的错误。难道说是骗人的?并非这样,刚才说了,多是com.android.support:support-v4,也多是com.android.support:appcompat-v7致使的或者是其余的support包致使的。spa
仍是在configurations.all{}中,我们对com.android.support:统一配置版本,代码以下:code
android {
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.1'
}
}
}
}
}
复制代码
问题解决,Sync一下项目自不用说。之后不再用担忧项目中依赖的某个库中依赖了support-v4或者v7版本太高了,用这个方法能够统一进行处理。若是有什么问题欢迎留言指正。若是对你有帮助,不妨点个赞支持一下。orm