【问题标题】:error: cannot find symbol variable abc_ic_ab_back_mtrl_am_alpha错误:找不到符号变量 abc_ic_ab_back_mtrl_am_alpha
【发布时间】:2023-03-12 06:40:01
【问题描述】:

我使用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'编译吗?

标签: android android-layout android-studio drawable android-resources


【解决方案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:width="24dp"
    android:height="24dp"
    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 版。如果没有,请升级到它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-12
          • 2016-08-08
          • 2020-06-30
          • 2017-12-28
          相关资源
          最近更新 更多