您好我正在尝试使用Vector drawable从Android开发网站的示例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>
My 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'
答案 0 :(得分:1)
矢量绘图在API级别21中可用,您无法在API 19中使用它们
http://developer.android.com/training/material/drawables.html
答案 1 :(得分:0)
正如其他人所说,这是因为VectorDrawables在API 21及更高版本中可用,但您正在使用API 19。 目前,在21之前没有官方支持VectorDrawables的API级别(好吧,有点,见最后一段)。
据我所知,目前的情况如下。在早期的API中有几个第三方库可用于使用向量:
但是,Android Studio中对早期API的支持略有不同。这种方法而不是在早期版本中使用实际的VectorDrawables,而是生成PNG文件,以在构建项目时替换Vector文件。为此,请确保您的Gradle Plugin is up to date(1.5.0或更高版本)。您可能还需要将编译sdk版本增加到21或更高版本。
答案 2 :(得分:0)
下载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
是反编译后生成的文件夹的名称。