You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter导入AAR后AAPT样式属性缺失错误的解决求助

Flutter导入AAR后AAPT资源链接错误解决方法

问题描述

将AAR文件导入Flutter项目后,出现大量Android资源链接失败的AAPT错误,提示itemBackground、itemIconTint、colorPrimaryVariant等样式属性未找到。已在values/styles.xml及values-night-v8/style.xml中定义部分样式,但项目仍无法运行。

错误日志

Execution failed for task ':app:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
   > Android resource linking failed
     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml:1593: AAPT: error: style attribute 'attr/itemBackground (aka com.example.project:attr/itemBackground)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml:1594: AAPT: error: style attribute 'attr/itemIconTint (aka com.example.project:attr/itemIconTint)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml:1595: AAPT: error: style attribute 'attr/itemTextColor (aka com.example.project:attr/itemTextColor)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml:2030: AAPT: error: style attribute 'attr/colorPrimaryVariant (aka com.example.project:attr/colorPrimaryVariant)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml:2031: AAPT: error: style attribute 'attr/colorOnPrimary (aka com.example.project:attr/colorOnPrimary)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml:2033: AAPT: error: style attribute 'attr/colorSecondary (aka com.example.project:attr/colorSecondary)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml:2034: AAPT: error: style attribute 'attr/colorSecondaryVariant (aka com.example.project:attr/colorSecondaryVariant)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values/values.xml:2035: AAPT: error: style attribute 'attr/colorOnSecondary (aka com.example.project:attr/colorOnSecondary)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:40: AAPT: error: style attribute 'attr/colorPrimaryVariant (aka com.example.project:attr/colorPrimaryVariant)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:41: AAPT: error: style attribute 'attr/colorOnPrimary (aka com.example.project:attr/colorOnPrimary)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:43: AAPT: error: style attribute 'attr/colorSecondary (aka com.example.project:attr/colorSecondary)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:44: AAPT: error: style attribute 'attr/colorSecondaryVariant (aka com.example.project:attr/colorSecondaryVariant)' not found.

     ERROR:/Users/user/Projects/Project/build/app/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:45: AAPT: error: style attribute 'attr/colorOnSecondary (aka com.example.project:attr/colorOnSecondary)' not found.

当前配置的样式代码

<style name="NormalTheme" parent="@android:style/Theme.Light.NoActionBar">
    <item name="android:windowBackground">?android:colorBackground</item>
    <item type = "attr" name="colorPrimary">#FFFFFFFF</item>
    <item type = "attr" name= "itemIconTint">#FFFFFFFF</item>
    <item type = "attr" name= "itemTextColor">#FFFFFFFF</item>
    <item type = "attr" name= "itemBackground">#FFFFFFFF</item> 
</style>

解决方案

1. 声明自定义属性

itemBackground、itemIconTint、itemTextColor属于自定义属性,必须先在res/values/attrs.xml中声明才能使用:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="itemBackground" format="color|reference" />
    <attr name="itemIconTint" format="color|reference" />
    <attr name="itemTextColor" format="color|reference" />
</resources>

2. 切换到Material主题

colorPrimaryVariant、colorOnPrimary等是Material Design的专属属性,旧的Android框架主题(如@android:style/Theme.Light.NoActionBar)不包含这些属性。需将主题父类替换为Material相关主题:

<!-- values/styles.xml -->
<style name="NormalTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:windowBackground">?android:colorBackground</item>
    <!-- Material主题核心属性 -->
    <item name="colorPrimary">#FFFFFFFF</item>
    <item name="colorPrimaryVariant">#FFE0E0E0</item>
    <item name="colorOnPrimary">#FF000000</item>
    <item name="colorSecondary">#FF2196F3</item>
    <item name="colorSecondaryVariant">#FF1976D2</item>
    <item name="colorOnSecondary">#FFFFFFFF</item>
    <!-- 自定义属性 -->
    <item name="itemBackground">#FFFFFFFF</item>
    <item name="itemIconTint">#FFFFFFFF</item>
    <item name="itemTextColor">#FFFFFFFF</item>
</style>

3. 修正夜间模式样式

同步更新values-night-v8/styles.xml中的主题,确保包含所有必需的Material属性:

<!-- values-night-v8/styles.xml -->
<style name="NormalTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="colorPrimary">#FF121212</item>
    <item name="colorPrimaryVariant">#FF1F1F1F</item>
    <item name="colorOnPrimary">#FFFFFFFF</item>
    <item name="colorSecondary">#FF64B5F6</item>
    <item name="colorSecondaryVariant">#FF42A5F5</item>
    <item name="colorOnSecondary">#FF000000</item>
    <!-- 自定义属性按需调整颜色 -->
    <item name="itemBackground">#FF121212</item>
    <item name="itemIconTint">#FFFFFFFF</item>
    <item name="itemTextColor">#FFFFFFFF</item>
</style>

4. 移除无效的type="attr"属性

样式中的<item>标签不需要type="attr",该属性仅在声明自定义属性时使用,直接删除即可。

关键原因说明

  • 自定义属性未声明:AAPT无法识别未提前声明的自定义属性,必须在attrs.xml中定义。
  • 主题不兼容:旧框架主题不支持Material Design属性,切换到Material主题才能使用这些属性。
  • 样式语法错误:type="attr"属于声明属性时的语法,在设置样式值时无效。

内容的提问来源于stack exchange,提问作者Zahid Tekbaş

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:55:54