该属性没有在基本的xml属性上声明(Android)

我是这个Android开发新手,我发现它的布局真的很混乱。 我试图在一个视图上有一个背景图像,我试过使用这个例子添加一个背景图像在xml Android中的形状 ,但它看起来非常糟糕(你知道的位图)

所以我认为vector可能很有趣。 唯一的问题是连官方的例子都无法工作。 我试过把这个设置为背景

<?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="256dp" android:width="256dp" android:viewportWidth="32" android:viewportHeight="32"> <path android:fillColor="#8fff" android:pathData="M20.5,9.5 c-1.955,0,-3.83,1.268,-4.5,3 c-0.67,-1.732,-2.547,-3,-4.5,-3 C8.957,9.5,7,11.432,7,14 c0,3.53,3.793,6.257,9,11.5 c5.207,-5.242,9,-7.97,9,-11.5 C25,11.432,23.043,9.5,20.5,9.5z" /> 

它在devise视图中呈现所有,但属性viewportWidthviewportHeightfillColorpathData都显示相同的警告:

 The 'http://schemas.android.com/apk/res/android:viewportWidth' is not declared 

如果我检查文件,果然,它不在那里。 这是否意味着我必须明确地声明所有这些types? 香草的例子似乎有点奇怪。

请注意,如果我删除警告前面的“android”,它将删除警告,但仍然给我相同的部署错误

 Android.Views.InflateException: Binary XML file line #1: Error inflating class <unknown> 

Solutions Collecting From Web of "该属性没有在基本的xml属性上声明(Android)"

问题

智能感知不能select我们键入的属性,虽然这些属性是存在于android SDK中,并显示这个属性没有声明。

我昨天在Visual Studio 2015中得到了这个问题,并开始search这个,最终我发现这两个文件在Visual Studio中的XML架构文件夹中是缺less的,所以下载这些文件的链接如下,

  1. https://github.com/atsushieno/monodroid-schema-gen/blob/master/android-layout-xml.xsd
  2. https://github.com/atsushieno/monodroid-schema-gen/blob/master/schemas.android.com.apk.res.android.xsd

只需将文件手动下载并移动到C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Xml \ Schemas,或者只需在Visual Studio中添加这些模式即可。 这个错误将会消失,我用这个程序解决了这个问题。

据我所知,这些属性(你在上面指出) 没有在jdk_1.7中定义

改用jdk_1.8。

您可以通过以下方式configuration到JDK的path:

Microsoft Visual Studio 2015 – >工具 – >选项 – > Xamarin – > Android设置 – > JDK位置[Change]

备注

如果您正在使用Microsoft Visual Studio 2015 Update 3或早期版本之一,我向您保证警告不会消失…这已经是Intellisense的问题(不是JDK的问题)。 它将在未来的版本中得到修复。

截图

创build一个基于模板的Xamarin.Android应用程序。

从Google / Android VectorDrawable文档vector.xml示例,并将其创build为项目中Resources/drawable目录下的.xml文件:

 <?xml version="1.0" encoding="UTF-8" ?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="64dp" android:width="64dp" android:viewportHeight="600" android:viewportWidth="600" > <group android:name="rotationGroup" android:pivotX="300.0" android:pivotY="300.0" android:rotation="45.0" > <path android:name="v" android:fillColor="#000000" android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" /> </group> </vector> 

更新您的Resouce/layout/Main.axml以将vector包含在LinearLayoutButton的背景中:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/vector" > <Button android:id="@+id/myButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hello" android:background="@drawable/vector" /> </LinearLayout> 

结果是:

在这里输入图像说明

不是来自Google的一个漂亮的例子,但它的工作原理。

清理vector并将颜色设置为红色

 <?xml version="1.0" encoding="UTF-8" ?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="256dp" android:width="256dp" android:viewportHeight="60" android:viewportWidth="60" > <group android:name="rotationGroup" android:pivotX="0.0" android:pivotY="0.0" android:rotation="0.0" > <path android:name="so" android:fillColor="#F44336" android:pathData="M20.5,9.5 c-1.955,0,-3.83,1.268,-4.5,3 c-0.67,-1.732,-2.547,-3,-4.5,-3 C8.957,9.5,7,11.432,7,14 c0,3.53,3.793,6.257,9,11.5 c5.207,-5.242,9,-7.97,9,-11.5 C25,11.432,23.043,9.5,20.5,9.5z" /> </group> </vector> 

结果是:

在这里输入图像说明