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就不会报错了.

原创文章 65 获赞 26 访问量 10万+

猜你喜欢

转载自blog.csdn.net/adojayfan/article/details/88529519