場景
Android Studio升級到3.2.1後,不知道是誰改了哪個module的依賴庫版本號,build時出現以下錯誤
Android resource linking failed
Output: /Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/incremental/mergeDefaultFlavorBetaResources/merged.dir/values-v28/values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/incremental/mergeDefaultFlavorBetaResources/merged.dir/values-v28/values-v28.xml:11: error: resource android:attr/dialogCornerRadius not found.
/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/incremental/mergeDefaultFlavorBetaResources/merged.dir/values/values.xml:1735: error: resource android:attr/fontVariationSettings not found.
/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/incremental/mergeDefaultFlavorBetaResources/merged.dir/values/values.xml:1736: error: resource android:attr/ttcIndex not found.
error: failed linking references.
Command: /Users/dujuncan/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/5f450e77e31e0af9b1b1ca1d2542b966/aapt2-3.2.1-4818971-osx/aapt2 link -I\
/Users/dujuncan/Library/Android/sdk/platforms/android-27/android.jar\
--manifest\
/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/merged_manifests/defaultFlavorBeta/processDefaultFlavorBetaManifest/merged/AndroidManifest.xml\
-o\
/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/processed_res/defaultFlavorBeta/processDefaultFlavorBetaResources/out/resources-defaultFlavorBeta.ap_\
-R\
@/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/incremental/processDefaultFlavorBetaResources/resources-list-for-resources-defaultFlavorBeta.ap_.txt\
--auto-add-overlay\
--java\
/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/generated/not_namespaced_r_class_sources/defaultFlavorBeta/processDefaultFlavorBetaResources/r\
--proguard-main-dex\
/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/legacy_multidex_aapt_derived_proguard_rules/defaultFlavorBeta/processDefaultFlavorBetaResources/manifest_keep.txt\
--custom-package\
com.baijia.live\
-0\
apk\
--output-text-symbols\
/Users/dujuncan/AndroidStudioProjects/bjsdk/live-app-android/app/build/intermediates/symbols/defaultFlavor/beta/R.txt\
--no-version-vectors
Daemon: AAPT2 aapt2-3.2.1-4818971-osx Daemon #0
解決辦法
根據第二行Output的提示,是在合併value資源文件出錯的,values-28中沒有找到一些android:attr屬性。
查看項目其它module時發現,其他module的build.gradle中compileSdkVersion存在版本不一致的情況,有的是27,有些是28.
所以最簡單的辦法就是讓App運行時統一指定爲28。
打開項目主工程(通常是app module)的build.gradle
將compileSdkVersion指定爲28
android {
//編譯版本號
compileSdkVersion 28
.....................
}
或者用鼠標選中主工程,右鍵-Open Module settings,修改Compile Sdk Version.
[]
sync後,重新build就不會報錯了.