【问题标题】:Android nor resource identifier foundAndroid 也找不到资源标识符
【发布时间】:2015-12-01 10:52:47
【问题描述】:

您好,我正在尝试使用 Vector drawable 从 android dev 网站的示例 xml 中绘制指纹图标,但我得到一个错误,说它无法找到此 drawable 上设置的任何属性。

下面是代码:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="40.0dp"
        android:height="40.0dp"
        android:viewportWidth="40.0"
        android:viewportHeight="40.0">
    <path
        android:pathData="M20.0,20.0m-20.0,0.0a20.0,20.0 0.0,1.0 1.0,40.0 0.0a20.0,20.0 0.0,1.0 1.0,-40.0 0.0"
        android:fillColor="#009688"/>
    <path
        android:pathData="M11.2,21.41l1.63,-1.619999 4.17,4.169998 10.59,-10.589999 1.619999,1.63 -12.209999,12.209999z"
        android:fillColor="#FFFFFF"/>
</vector>

我的 Min 和 compiledSdk 设置为 19:

我在尝试进行清理/重建时遇到的错误:

Error:(17) No resource identifier found for attribute 'viewportWidth' in package 'android'
Error:(17) No resource identifier found for attribute 'viewportHeight' in package 'android'
Error:(22) No resource identifier found for attribute 'pathData' in package 'android'
Error:(22) No resource identifier found for attribute 'fillColor' in package 'android'
Error:(25) No resource identifier found for attribute 'pathData' in package 'android'
Error:(25) No resource identifier found for attribute 'fillColor' in package 'android'

【问题讨论】:

  • 您使用的是哪个版本的 AS ?您可以发布您的 build.gradle(两者)吗?
  • 您可能在较低的 API 中运行。根据developer.android.com/training/material/drawables.html,矢量可绘制对象在 API 级别 21 中可用
  • 我使用的是AndroidStudio 2.0

标签: android android-drawable android-6.0-marshmallow fingerprint


【解决方案1】:

矢量可绘制对象在 API 级别 21 中可用,您不能在 API 19 中使用它们

http://developer.android.com/training/material/drawables.html

【讨论】:

【解决方案2】:

正如其他人所提到的,这是因为 VectorDrawables 在 API 21 及更高版本中可用,但您正在使用 API 19。 目前对于 21 之前的 API 级别的 VectorDrawables 没有官方支持(嗯,有点,见最后一段)。

据我所知,这是目前的情况。有几个第三方库可用于在早期 API 中使用向量:

  • Mr Vector - 他们声明现在不再维护,他们正在等待支持库的正式版本
  • vector-compat - 他们实际上并没有说这将不再被维护,但最后一次更新是 7 个月前

不过,Android Studio 中对早期 API 的支持类型略有不同。这种方法不是在早期版本中使用实际的 VectorDrawables,而是在您构建项目时生成 PNG 文件来替换 Vector 文件。为此,请确保您的 Gradle Plugin is up to date(1.5.0 或更高版本)。您可能还需要将您的 compile sdk 版本增加到 21 或更高版本。

【讨论】:

    【解决方案3】:

    下载aapt.exe 并将文件保存在 apktool.jarapktool.bat 文件所在的同一目录中。

    使用命令java -jar apktool.jar d -s your_apk_file.apk 进行反编译,使用命令java -jar apktool.jar b folder_name 进行编译。这里folder_name是反编译后生成的文件夹名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-10
      • 2014-04-22
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多