Android 未找到资源标识符
Android nor resource identifier found
您好,我正在尝试使用 Vector drawable 从 android 开发网站的示例 xml 中绘制指纹图标,但我收到一条错误消息,说它找不到任何设置的属性这个可绘制对象。
下面是代码:
<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 :
我尝试执行 clean/rebuild:
时遇到的错误
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'
矢量绘图在 API 级别 21 中可用,您不能在 API 19
中使用它们
http://developer.android.com/training/material/drawables.html
如其他人所述,这是因为 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 或更高版本)。您可能还需要将编译 sdk 版本提高到 21 或更高版本。
下载aapt.exe
并将文件保存在 apktool.jar
和 apktool.bat
文件所在的同一目录中。
使用命令 java -jar apktool.jar d -s your_apk_file.apk
进行反编译,使用 java -jar apktool.jar b folder_name
进行编译。这里folder_name
为反编译后生成的文件夹名称
您好,我正在尝试使用 Vector drawable 从 android 开发网站的示例 xml 中绘制指纹图标,但我收到一条错误消息,说它找不到任何设置的属性这个可绘制对象。
下面是代码:
<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 :
我尝试执行 clean/rebuild:
时遇到的错误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'
矢量绘图在 API 级别 21 中可用,您不能在 API 19
中使用它们http://developer.android.com/training/material/drawables.html
如其他人所述,这是因为 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 或更高版本)。您可能还需要将编译 sdk 版本提高到 21 或更高版本。
下载aapt.exe
并将文件保存在 apktool.jar
和 apktool.bat
文件所在的同一目录中。
使用命令 java -jar apktool.jar d -s your_apk_file.apk
进行反编译,使用 java -jar apktool.jar b folder_name
进行编译。这里folder_name
为反编译后生成的文件夹名称