web-dev-qa-db-ja.com

基本的なxml属性で属性が宣言されていない(Android)

私はこれに初めてですAndroid開発、そして私はそれのレイアウトが本当に紛らわしいと思います。私はビューに背景画像を持っていると、この例を使ってみました XML Androidのシェイプに背景画像を追加 、しかし非常に見た目が悪い(ご存じのビットマップ)

だから私はベクトルが楽しいと思った。唯一の問題は、公式の例でさえ動作しないことです。これを背景として設定してみました

<?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" />

デザインビューとすべてでレンダリングされますが、属性viewportWidthviewportHeightfillColorおよびpathDataはすべて同じ警告を表示します。

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

ファイルを確認すると、確かにそこにありません。それは、これらすべての型を明示的に宣言する必要があるということですか?バニラの例では少し奇妙に思えます。

警告の前にある「Android」を削除すると、警告は削除されますが、同じ展開エラーが表示されます。

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

問題

Intellisenseは入力した属性を選択できませんでしたが、これらの属性はAndroid SDKに存在し、この属性が宣言されていないことを示しています。

ソリューション

昨日Visual Studio 2015でこの問題が発生し、これについて検索を開始しました。最終的に、これら2つのファイルがVisual StudioのXMLスキーマフォルダーにないことがわかりました。

  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内に追加するだけです。このエラーはなくなります。この手順でこの問題を解決しました。

43
Usman

私が知っているように、これらの属性(上で指摘した)はjdk_1.7で定義されていません。

代わりにjdk_1.8を使用します。

次の方法で、JDKへのパスを構成できます。

Microsoft Visual Studio 2015->ツール->オプション-> Xamarin-> Android Settings-> JDK Location [Change]

備考

Microsoft Visual Studio 2015 Update 3またはそれ以前のバージョンのいずれかを使用している場合、警告が消えることはありません...これはすでにIntellisenseの問題です(JDKの問題ではありません)。将来のリリースで修正する必要があります。

Screenshot

3
AndreyWD

テンプレートベースのXamarin.Androidアプリを作成します。

Google/Android VectorDrawable docsからvector.xmlの例を使用して、プロジェクトの.xmlディレクトリの下にResources/drawableファイルとして作成します。

<?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を更新して、LinearLayoutおよびButtonの背景にベクトルを含めます。

<?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>

結果:

enter image description here

Googleの見本ではありませんが、動作します。

ベクターをクリーンアップし、色を赤に設定します

<?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>

結果:

enter image description here

1
SushiHangover