Android - 资源链接失败 / 引用链接失败

11

我检查了我的XML文件的本地历史记录并仔细查看了清单文件,但没有发现任何问题。

在发布问题之前,我浏览了很多类似的帖子和建议的答案,但没有找到与我的问题相关的信息。下面是我的日志,希望你们中的一位可以引导我解决问题!

Android资源链接失败 输出:\ AndroidProjects \ myApp \ app \ build \ intermediates \ incremental \ mergeDebugResources \ merged.dir \ values-v28 \ values-v28.xml:7:错误:找不到资源android:attr / dialogCornerRadius。 \ AndroidProjects \ myApp \ app \ build \ intermediates \ incremental \ mergeDebugResources \ merged.dir \ values-v28 \ values-v28.xml:11:错误:找不到资源android:attr / dialogCornerRadius。 \ AndroidProjects \ myApp \ app \ build \ intermediates \ incremental \ mergeDebugResources \ merged.dir \ values \ values.xml:605:错误:找不到资源android:attr / fontVariationSettings。 \ AndroidProjects \ myApp \ app \ build \ intermediates \ incremental \ mergeDebugResources \ merged.dir \ values \ values.xml:605:错误:找不到资源android:attr / ttcIndex。 错误:连接引用失败。

命令:C:\ Users \ lucif.gradle \缓存\ transforms-1 \ files-1.1 \ aapt2-3.2.1-4818971-windows.jar \ c9d8fd27aeabc6968bb2cb43f288855c \ aapt2-3.2.1-4818971-windows \ aapt2.exe链接-I \           C:\ Users \ lucif \ AppData \ Local \ Android \ Sdk \ platforms \ android-27 \ android.jar \           --manifest \           \ AndroidProjects \ myApp \ app \ build \ intermediates \ merged_manifests \ debug \ processDebugManifest \ merged \ AndroidManifest.xml \           -o \           \ AndroidProjects \ myApp \ app \ build \ intermediates \ processed_res \ debug \ processDebugResources \ out \ resources-debug.ap_ \           -R \           \ AndroidProjects \ myApp \ app \ build \ intermediates \ incremental \ processDebugResources \ resources-list-for-resources-debug.ap_.txt \           --auto-add-overlay \           --java \           \ AndroidProjects \ myApp \ app \ build \ generated \ not_namespaced_r_class_sources \ debug \ processDebugResources \ r \           --custom-package \           hivemind.lab.com.myApp \           -0 \           apk \           --output-text-symbols \           \ AndroidProjects \ myApp \ app \ build \ intermediates \ symbols \ debug \ R.txt \           --no-version-vectors   Daemon:AAPT2 aapt2-3.2.1-4818971-windows守护程序#0

5个回答

12

解决方案1:将compileSdkVersion设置为28,让Android Studio下载所需的文件。

输入图片说明

如果您已经针对此版本进行了目标设置,可以尝试清理项目并同步gradle文件。


几乎成功了,但现在它生成了这个错误:Manifest merger failed: Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 也存在于 [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory)。 建议:在AndroidManifest.xml的<application>元素中添加“tools:replace="android:appComponentFactory"”,以覆盖。 - Thorvald
3
这是因为你正在使用新的 Material 库和旧版 Support 库。你需要将 android.support 迁移到 androidx。请查看此指南:https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md - André Sousa
谢谢,你节省了很多时间。 - Ravikiran D
@AndréSousa 迁移到 AndroidX 后,有趣的是 Kotlin 片段布局无法导入视图。错误:未解决的引用。由于接收器类型不匹配,以下候选项均不适用: - Jithish P N
@AndréSousa,我该如何将android.support迁移到androidx?我正在尝试更新Google Places SDK,在将我的Compile SDK版本更改为28后出现了此错误。 - LizG

7
在我的情况下,我制作了两个自定义背景,但它们没有被识别。
我从这两个XML资源文件的顶部移除了<?xml version="1.0" encoding="utf-8"?>标签。
对我而言,这个方法起作用了,在尝试了社区中的许多解决方案之后。XML文件出现错误很难找到原因。它们甚至会影响Java文件。

在我的情况下,是字符串标记中的一个未知字符导致了问题,在删除它后,应用程序成功构建。 - Talu

1

我通过对build.gradle(Module:app)文件进行微小更改来解决了这个问题。只需添加、删除或更改库的版本,然后同步您的项目即可。这对我有用。


0
这里的问题与找不到引用有关。首先尝试检查值文件是否存在任何问题。其次,您可以查看您的 Xml 文件,以检查任何视图的错误属性。解决问题的最后一种方法是清理和重建项目或使项目无效并重启。

0

我曾经遇到过类似的问题...

后来发现是我在应用程序 build.gradle 文件中使用了一个太新的依赖项,与我的 Min sdk 不兼容。

使用较低版本解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接