Android Studio resource linking failed

場景

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.
[AF5Dr4.md.png]

sync後,重新build就不會報錯了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章