错误:找不到符号变量 abc_ic_ab_back_mtrl_am_alpha

Posted

技术标签:

【中文标题】错误:找不到符号变量 abc_ic_ab_back_mtrl_am_alpha【英文标题】:error: cannot find symbol variable abc_ic_ab_back_mtrl_am_alpha 【发布时间】:2016-06-08 12:55:45 【问题描述】:

我使用New > Fragment > Fragment (Blank) 在我的 android Studio 项目中添加了一个片段。结果当我尝试运行时,项目无法编译,因为它无法解析R.drawable.abc_ic_ab_back_mtrl_am_alpha in

toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);

有什么办法解决这个问题吗?

看来我也无法访问android:buttonTint

【问题讨论】:

您尝试从哪里添加来自活动或片段本身的图像? 活动。通过快捷方式创建片段的行为会破坏现有代码。我还没有在 Fragment 中做任何事情。仅仅创建它就是问题所在。即使我删除了片段,问题仍然存在。 必须有一种比简单的try to apply grade更有意义的说法。 尝试将此代码放在片段中的 onCreate 方法中。 setHasOptionsMenu(true); 你是用'com.android.support:appcompat-v7:23.2.1'编译吗? 【参考方案1】:

在 23.2.0 支持库中更改了资源名称。

修改 abc_ic_ab_back_mtrl_am_alpha 改为 abc_ic_ab_back_material

编辑: 在 23.2.1 中组件的名称改回 abc_ic_ab_back_mtrl_am_alpha

编辑: 在 24.0.0 中,组件的名称更改为: abc_ic_ab_back_material

【讨论】:

不完全是。这个新资源在 appcompat-v7 中被标记为私有 我收到一个错误:cannot find symbol variable abc_ic_ab_back_material 在支持库的最新版本(23.2.1)中,他们将其改回 abc_ic_ab_back_mtrl_am_alpha @Jon 你是绝对正确的。你应该把这个作为这个问题的答案发布,你会得到支持。谢谢! 好吧,在 25.0.0 abc_ic_ab_back_material 被声明为private【参考方案2】:

由于支持库中的矢量可绘制实现,看起来不再有光栅格式的图像。所以我放置了这个矢量可绘制对象,它表示与以前版本的支持库中相同的箭头。右击drawable文件夹,New -> Drawable resource file并粘贴xml代码:

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:
    android:
    android:viewportWidth="24"
    android:viewportHeight="24">

    <path
        android:pathData="M0 0h24v24H0z" />
    <path
        android:fillColor="#ffffff"
        android:pathData="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" />
</vector>

Source

对于 API

Gradle 插件 2.0+

android   
   defaultConfig   
     vectorDrawables.useSupportLibrary = true  
      
 

Gradle 插件 1.5

android   
   defaultConfig   
     generatedDensities = []  
    

  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions   
    additionalParameters "--no-version-vectors"  
    
  

更多信息请参见this blog post。

【讨论】:

【参考方案3】:

就我而言,我是这样做的

final ActionBar ab = mActivity.getSupportActionBar();
             ab.setHomeAsUpIndicator(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_material);

【讨论】:

【参考方案4】:

我在将 Android 支持库更新到版本 23.2.0 时遇到了这个问题

就我而言,我使用的第三方库存在冲突。

我切换到新版本的第三方库解决问题。

【讨论】:

【参考方案5】:

很抱歉,这可能不是您要寻找的答案,但几分钟前我也遇到了这种情况。 Android Studio 提醒我,我的 Gradle 文件中有更新版本的“com.google.android.gms”和“com.android.support”可用——当时,我使用的是 8.3.0 和后者是 23.1.1,所以我更新到 8.4.0 和 23.2.0,那时我遇到了和你一样的问题,Android Studio 跳转到库中的 values-v11.xml 文件,用于 AFollestad 的材质对话框,并且似乎这引起了问题,因为它uses the AppCompat library。

编辑:刚刚找到this,如果您使用的是材料对话框,请检查您是否使用的是 0.8.5.5 版。如果没有,请升级到它。

【讨论】:

以上是关于错误:找不到符号变量 abc_ic_ab_back_mtrl_am_alpha的主要内容,如果未能解决你的问题,请参考以下文章

找不到符号变量 edit_message

错误:找不到符号变量 abc_ic_ab_back_mtrl_am_alpha

错误在 PreparedStatement 中找不到符号

找不到符号: 变量 BuildConfig

如何在构建时修复“找不到符号”错误?

变量 BuildConfig 找不到。飘红