错误 - Android资源链接失败(AAPT2 27.0.3守护程序#0)

时间:2018-03-08 10:38:06

标签: android gradle build

我有这个错误

我尝试重新安装android studio并删除.gradle文件夹,请问任何解决方案?

    Error:FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed (AAPT2 27.0.3 Daemon #0)
  Command: C:\javasdk\build-tools\27.0.3\aapt2.exe link -I\
          C:\javasdk\platforms\android-26\android.jar\
          --manifest\



  C:\Users\Jalal D\.gradle\caches\transforms-1\files-1.1\fonticon-0.1.8.aar\2b09376fc14469ba65fc8e4d85c2eed1\res\values\values.xml:19:5-25:25: AAPT: error: resource android:attr/fontVariationSettings not found.

  C:\Users\Jalal D\.gradle\caches\transforms-1\files-1.1\fonticon-0.1.8.aar\2b09376fc14469ba65fc8e4d85c2eed1\res\values\values.xml:19:5-25:25: AAPT: error: resource android:attr/ttcIndex not found.

  error: failed linking references.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 3s

33 个答案:

答案 0 :(得分:40)

有完全相同的问题。通过执行以下操作解决了这个问题: 使用platform / android目录中的 com.android.support:support-v4:27.1.0 搜索并替换 com.android.support:support-v4:+

此外,我还必须将以下代码添加到platforms / android / app / build.gradle和platforms / android / build.gradle文件中:

configurations.all {
resolutionStrategy {
    force 'com.android.support:support-v4:27.1.0'
}}

编辑回答"这个com.android.support:support-v4:+设置在哪里?" ...

该设置可能(在这种情况下)位于platform / android /目录中的一个插件的.gradle文件中,例如在我的情况下,它是starter-barcodescanner插件,所以只需通过所有你的插件.gradle文件:

enter image description here

仔细检查platforms / android / build.gradle文件。

希望这有帮助。

答案 1 :(得分:34)

如果您的任何XML资源都有错误,也会出现 Android资源链接失败错误。就我而言,我在可绘制文件夹中的一个XML可绘制对象中两次使用了以下行:

<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>

我删除了重复的行,错误消失了。该错误有点令人误解:

  

Android资源链接失败       输出:/Users/johndoe/Desktop/myapp/app/src/main/res/layout/activity_main.xml:2:   错误:资源drawable / bg_main(又名   com.example.myproject:drawable / bg_main)找不到。

根据上述错误,您需要做的第一件事就是证明读取了在 activity_main 中访问的所有可绘制资源,因为发现错误的机会更高。在最坏的情况下,您可能最终检查所有资源文件。

答案 2 :(得分:32)

注意:如果将支持库升级到28.0.0,而您的compileSdkVersion也不是28,则Android Studio会吐出类似这样的疯狂错误。

答案 3 :(得分:7)

如果您使用的是Windows 10和Android Studio 3.2,则只需转到应用程序的 build.gradle 并更改版本。

Under dependencies, change version, and build/sync

答案 4 :(得分:3)

com.android.support:support-v4刚刚获得更新,可能会影响在其依赖项中使用更新版本的插件。但是如果你在依赖项中找不到(比如你使用crosswalk插件),只需将这段代码放在你的代码gradle插件之上(不需要在build.gradle上添加)。

configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:24.0.0'
}

将代码放入crosswalk插件的示例位置 here

随意编辑com.android.support版本(请勿使用28.0.0),因为这就是问题

答案 5 :(得分:3)

我通过在所有ID之前添加@+id/来解决此问题。

@+id/your_item_id

答案 6 :(得分:2)

我遇到了同样的问题,并转到文件->项目结构...->建议,然后全部应用来解决了该问题。就像@JeffinJ所建议的那样,我认为问题是由于Gradle插件更新所致。

答案 7 :(得分:1)

尝试更新最新的构建版本,目标和编译版本,并更新依赖项但不适用于我

在我的情况下为清单工作中将<meta-items/>更改为<meta-data/> ...

希望它对某人有帮助......

答案 8 :(得分:1)

资源文件中应该有一些错误。这意味着可能存在缺少类型的属性值。浏览资源文件并更正这些值并享受工作。

答案 9 :(得分:1)

我将新颜色导入到我的项目中,并遇到了同样的问题。因此,我打开了styles.xml,并使用新的颜色名称将项目重新分配给了颜色。

答案 10 :(得分:1)

就我而言,我不小心写了:

app:displayViewTitle="@string/instructions_defineExtract_confirm_email"

有趣的是,Android Studio能够通过CTRL +单击来导航字符串。它只是给Build Time错误。更改为标准的“点分隔”可以达到目的

app:displayViewTitle="@string/instructions.defineExtract.confirm.email"

答案 11 :(得分:1)

我有同样的问题,但这是因为在编辑按钮时,我在按钮layout_width / height中忘记了将dp放在最后。添加了dp并解决了问题:/

答案 12 :(得分:1)

我遇到了同样的错误,当我关闭AndroidStudio并删除构建错误信息中的C:\Users\Jalal D\.gradle\caches\transforms-1\之类的目录时,我将其修复。

答案 13 :(得分:0)

如此愚蠢-(无论出于何种原因)我在drawable文件夹中只有一个空xml。并且AS产生了数十个不相关的错误> <

所以,我的一般建议是相同的-简要检查每个资源文件。

答案 14 :(得分:0)

我在 drawable 上遇到了这样的问题。

花了将近 7 个小时。尝试了 Google 和 SO 的所有方法。什么都没用

然后休息重新打开文件只是看代码,突然我想到我命名为 spalsh 而不是 splash 的图像文件!

那 7 个小时!!!只是一个小错误和如此大的压力。

除了像这样的奇迹外,什么都没有

答案 15 :(得分:0)

检查您的 Gradle插件版本。如果在此问题出现之前已更新到较新的版本,请尝试将其降级。 转到文件-> 项目结构。更改为以前的版本。

答案 16 :(得分:0)

在我的情况下,我无意中设置了仅在按钮中存在的属性的样式,并为TextView添加了该样式。

<!-- applied to TextViews -->
<style name="rowStyle"> 
    <item name="android:padding">3dp</item>
    <item name="android:borderlessButtonStyle">false</item> <!-- this caused the error -->
    <item name="android:background">@drawable/textview_border</item>
</style>

使用android:borderlessButtonStyle删除行可解决此问题。

答案 17 :(得分:0)

  • 右键单击可绘制文件夹 并选择“在资源管理器中显示”
  • 在打开的文件系统中查找失败的文件, 选择它们(或在整个可绘制对象中选择文件), 然后将它们复制 drawable-v24 文件(如果没有drawable-v24文件,请勿删除可绘制文件并创建它)。
  • 然后选择 文件 -> 使缓存无效/重新启动
  • 重新启动Android Studio。

答案 18 :(得分:0)

如果遇到这种情况:就我而言,我有一个翻译后的字符串,但是该字符串尚未出现在默认的strings.xml中。将缺少的字符串添加到strings.xml中,即可解决。

答案 19 :(得分:0)

就我而言,错误指向AndroidManifest.xml文件。我有这行:

<meta-data
            android:name="com.google.android.actions"
            android:resource="@xml/popup_info.xml" />

我不知道为什么Android Studio会把它放在那里。我没有更改清单文件,而且直到升级到3.5.3版都没有发生-因此AS必须为我完成了它。无论如何,该行应该看起来像这样:

<meta-data
            android:name="com.google.android.actions"
            android:resource="@layout/popup" />

一旦我改变了,那一切都很好。

答案 20 :(得分:0)

我在我的一个 XML 文件的顶部遗漏了这一行:

<?xml version="1.0" encoding="utf-8"?>

答案 21 :(得分:0)

我遇到了同样的错误,我在其中一个受约束的地方丢失了 @+id/

        app:layout_constraintEnd_toEndOf="btn_join"

我添加@+id/ 后就修复了,如下所示:

        app:layout_constraintEnd_toEndOf="@+id/btn_join"

答案 22 :(得分:0)

我已解决问题,方法是将compileSdkVersion 23中的compileSdkVersion 28替换为build.gradle (Project: build)

答案 23 :(得分:0)

找到了导致此问题的原因之一

当我们尝试使用任何

  

字符串,样式,颜色等

出现在值(string.xml,style.xml,color.xml,etc,)的清单文件中,则会发生这种类型的错误

答案 24 :(得分:0)

我从1月28日开始使用Studio 3.3.1 Build。

对我来说,我使用ConstraintLayout指向布局文件中的一行时,出现了“错误android资源链接失败”,一直有效,直到今天,我对应用程序级别gradle文件的唯一更改是更新以下版本:

android.arch.navigation:navigation-fragment
android.arch.navigation:navigation-ui

1.0.0-rc011.0.0-rc02

该错误消息表示无法识别layout_constraintTop_toTopOf这当然是愚蠢的,因为它已经愉快地编译了几个月。

我已经使用了28.0.3的构建工具和28的compileSdkVersion。一段时间以来,我一直在各处使用androidx.appcompat(将这个项目重新转换为androidx)。

我首先经历了一个项目清理(无济于事),并使缓存/重启无效(无济于事)。有关布局最初是使用

定义的

<TextView><EditText><ImageView>组件(到今天为止运行良好)。

但是在阅读了以上答案之后,我想也许是由于某种原因引起的混乱,所以我更改了布局以使用:

<androidx.appcompat.widget
所有各种组件的

版本。没有变化-仍然出现错误。

然后,我删除了导致编译错误的<androidx.appcompat.widget.AppCompatTextView块。我在其他小部件中更改了对它的所有引用,改为引用“父”。做一个。 这次编译没有错误

所以我认为该小部件定义中有些奇怪。...这是什么:

<androidx.appcompat.widget.AppCompatTextView
    android:id="@+id/contact_firstname_label"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="@string/contact_fname_label"
    android:gravity="end"
    android:textAppearance="@android:style/TextAppearance.Material.Small"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@+id/contact_detail_fname"
    app:layout_constraintBaseline_toBaselineOf="@+id/contact_detail_fname"/>

然后,我将先前剪切过Ctrl-V的块粘贴回去,并在布局中引用该ID的其他组件中将引用更改回该ID。 编译失败

我再次剪切了该块并将其粘贴到写字板。然后从写字板粘贴中读取内容,我实际上将其打回(即这次没有复制/粘贴)-逐行,在键入最小定义后在项目上做一个make,然后在我再次输入时放在每个新行中。 每次项目都干净地编译!

我不知道该怎么做。也许文件中最初有一些虚假的不可见字符?

答案 25 :(得分:0)

对我来说,使用Asset Studio更改启动器图标后出现错误。事实证明,生成的doc.setFont('RopaSans-Regular'); doc.setFontType('normal'); 文件在文件顶部缺少以下行: ic_launcher_foreground.xml

答案 26 :(得分:0)

这听起来很平庸,但是对我来说Build > Clean Project修复了此错误,而没有进行任何其他更改。

答案 27 :(得分:0)

添加以下依赖项后,我遇到了相同的问题:

implementation 'com.evernote:android-state:1.4.1'
annotationProcessor 'com.evernote:android-state-processor:1.4.1'

原因是最新版本的evernote使用了对AndroidX的依赖关系,而我在项目中已支持库版本27.1.1。因此,正如其他答案所暗示的那样,可以选择将支持库升级到28.0.0,但这对于具有大量自定义视图的大型项目来说有点棘手。因此,我通过将Evernote版本降级为1.3.1解决了该问题。

答案 28 :(得分:0)

此问题可能有多种原因,这些原因主要在资源或应用程序级别的build.gradle文件中。

对于我来说,资源文件中的视图没有包含在build.gradle文件中的必需依赖项。

因此,请确保在build.gradle文件中包括所有必需的依赖项。

答案 29 :(得分:0)

对我来说发生了同样的问题,但是在出现此错误之前,我的应用程序正在运行。所以我只撤消了2/3次。并再次进行了更改。并成功构建了app.app。

答案 30 :(得分:0)

更改,最后一个(27.1.0)启用了(28.0.0)的最后一个支持库的版本,错误Android Resource Linking Failed消失了。

应该注意,版本27.1.0是我们实现中允许的最高版本,该版本有效,但是您可以根据需要使用较旧的版本。并且必须在以字符串com.android.support:

开头的所有依赖项中使用

project / app / build.gradle

implementation "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:support-v4:$rootProject.supportLibraryVersion"

project / build.gradle

ext {
    supportLibraryVersion= '27.1.0'
}

然后使用Gradle文件同步项目

GL

答案 31 :(得分:0)

我遇到了同样的问题,可以通过从资源文件中删除错误来解决此问题,例如样式,颜色文件在values文件夹中。 就我而言,样式颜色错误如下:

 <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">**@color/colorPrimary**</item>
    <item name="android:textColorSecondary">**@color/colorPrimaryDark**</item>
</style>

答案 32 :(得分:0)

我遇到了类似的问题,但是我从解决方案中出来的问题是,您在依赖项中使用了与同一个域相对应的任何东西,但是使用不同的版本来确保所有这些都是相同的