以前可以運作的工程項目從Git拉一下代碼然後再運作就各種問題,而項目中用到了谷歌,Facebook一些SDK,對我們開發來說真的很坑人。
先看報錯
/.../app
ild/intermediates/res/merged/beta/debug
alues-v26
alues-v26.xml
Error:(15, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(18, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Model的以前運作環境是
compileSdkVersion 25
buildToolsVersion '25.0.0'
而Model裡除了谷歌的SDK之外,還有Facebook的,把FaceBook的注釋掉就不再報錯。
Facebook的引用如下
compile 'com.facebook.android:facebook-android-sdk:4.+'
這個是FaceBook的所有SDk都包含的引進,以前電腦沒問題,再重新拉取就把上面的錯誤, 也就是 'com.facebook.android:facebook-android-sdk:4.+' 所依賴的環境發生變化, compileSdkVersion 發生變化了,從報錯中可以看到 版本号資訊的 V26,也就是com.facebook.android:facebook-android-sdk:4.+ 依賴的 compileSdkVersion 變成了26,然後把 compileSdkVersion 值設定為 26即可
compileSdkVersion 26
buildToolsVersion "26.0.1"
也就是遇到 No resource found that matches the given name attr 問題時可根據提示的 缺少的環境的Version 進行相應的 compileSdkVersion 環境值修改,修改為缺少資源報的最高的版本。