Information:Gradle tasks [:app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources]Error:In  FontFamilyFont, unable to find attribute android:fontError:In  FontFamilyFont, unable to find attribute android:fontWeightError:Execution failed for task ':app:processDebugResources'.> com.android.ide.common.process.ProcessException: Failed to execute aaptInformation:BUILD FAILED

你是不是也遇到过这种问题,而不知道从何下手?明明全部版本都已经修改过了,为什么还是会出现这种错误?我们带着心中的小疑惑来看一下这是为什么以及他的解决办法。进入正题,先说下出现这个问题的原因:

1.compileSdkVersion 和buildToolsVersion 的版本不对应
2.可能是工程中依赖的com.android.support:support-v4 (或support-v7) 版本不一致。

具体解决方案:

原因一:compileSdkVersion 和buildToolsVersion 的版本不对应

把工程的build.gradle文件中的compileSdkVersion及buildToolsVersion的版本设成一致。如下图所示

  • 升级你的buildToolsVersion到最新版,问题直接解决。
  • 也可以选择将目标版本降到你的sdk版本。不幸的是,问题丝毫没改变。

通过第一点的改正,我们排除了compileSdkVersion 和buildToolsVersion 的版本不对应的问题。但是还是没有完全解决掉该问题。咱们接着往下看

原因二:工程中依赖的com.android.support:support-v4 (或support-v7) 版本不一致

由于是导入别人的项目,对于dependencies{}中依赖的项目需要挨个排查依赖库使用的v4或者v7包的版本,最后找出原因并剔除类库中的support-v4,统一使用自己工程的就OK了(其他类似问题同理解决)
例如AndroidPicker类,修改如下

compile('cn.qqtheme.framework:WheelPicker:latest.release') { exclude group: 'com.android.support' }

对于不是自己的项目而项目本身又有很多依赖的时候,这个工作量是巨大且盲目的,全部都查一遍的话是要疯掉的。没关系,咱们有简单粗暴而且有效的办法,咱们在configurations.all{}修正v4包版本的版本信息,如下所示

android {    configurations.all {        resolutionStrategy.force 'com.android.support:support-v4:25.3.1'    }}

让我们愉快的运行起来,突然发现还是报相同的错误。难道说是骗人的?并不是这样,刚才说了,可能是com.android.support:support-v4,也可能是com.android.support:appcompat-v7导致的或者是其他的support包导致的。

简单粗暴,直接有效

还是在configurations.all{}中,咱们对com.android.support:统一配置版本,代码如下:

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版本过高了,用这个方法可以统一进行处理。如果有什么问题欢迎留言指正。如果对你有帮助,不妨点个赞支持一下。

更多相关文章

  1. android中控件的遮盖问题
  2. Android浏览器显示大分辨率图片的问题 分享
  3. Android查看外部依赖jar的源码'Android(安卓)Private Libraries'
  4. Android(安卓)OS历史版本
  5. Android版本与Linux内核版本的关系
  6. Android入门教程(三)之------导入现有Android工程
  7. You are attempting to build with the incorrect version of ja
  8. 使用Android(安卓)Studio 创建第一个Android(安卓)应用
  9. Android(安卓)解决自定义 CheckBox 样式时的背景显示异常问题

随机推荐

  1. ok6410 android driver(1)
  2. android排版布局学习
  3. Android(安卓)屏幕设置
  4. android 安装和卸载程序
  5. Android布局属性详解之RelativeLayout
  6. SeerBar样式
  7. Android(安卓)SDK下载和更新失败的解决方
  8. Android实现全屏
  9. Android媒体的一些使用总结(2)
  10. Android(安卓)Framework中添加AIDL文件编