错误:找不到符号变量abc_ic_ab_back_mtrl_am_alpha

Nou*_*vay 63 android drawable android-layout android-resources android-studio

我使用了一个Fragment到我的Android Studio项目New > Fragment > Fragment (Blank).其结果是,当我尝试运行,该项目将无法编译,因为它解决不了R.drawable.abc_ic_ab_back_mtrl_am_alpha

toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?

看起来我也失去了访问权限 android:buttonTint

Jon*_*Jon 175

在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中标记为私有 (6认同)
  • 这应该被接受为正确的答案. (4认同)
  • 我收到一个错误:`找不到符号变量 abc_ic_ab_back_material` (2认同)
  • 在最新版本的支持库(23.2.1)中,他们将其更改回abc_ic_ab_back_mtrl_am_alpha (2认同)

fly*_*ant 15

由于支持库中的矢量可绘制实现,看起来不再有栅格格式的图像.所以我把这个矢量drawable表示与之前版本的支持库中相同的箭头.右键单击drawable文件夹,New - > Drawable资源文件并粘贴此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>
Run Code Online (Sandbox Code Playgroud)

资源

对于API <21,您必须将这些属性添加到gradle构建文件中:

Gradle Plugin 2.0+

android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }
Run Code Online (Sandbox Code Playgroud)

Gradle插件1.5

android {  
   defaultConfig {  
     generatedDensities = []  
  }  

  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 } 
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此博客文章.


小智 7

在我的情况下,我这样做了

final ActionBar ab = mActivity.getSupportActionBar();
             ab.setHomeAsUpIndicator(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_material);
Run Code Online (Sandbox Code Playgroud)


Cia*_*C94 1

抱歉,这可能不是您正在寻找的答案,但几分钟前这也发生在我身上。Android Studio 提醒我,我的 Gradle 文件中有更新版本的“com.google.android.gms”和“com.android.support” - 当时,我使用的是 8.3.0 版本。 23.1.1 对于后者,所以我更新到 8.4.0 和 23.2.0,就在那时我遇到了和你一样的问题,Android Studio 跳转到 AFollestad 材质对话框库中的 value-v11.xml 文件,并且看来这会导致问题,因为它使用 AppCompat 库

编辑:刚刚发现这个,如果您使用的是材质对话框,请检查您是否使用的是版本 0.8.5.5。如果没有,请升级到它。