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