2016-10-02 7 views
1

私はすでにstackoverflowでこの質問に対するいくつかの回答を見てきましたが、ただちに「修正」ソリューションを提供しています。可能であれば、これがなぜ起こっているのかを理解したいと思います(いくつかの詳細がある回答)。パッケージ '....'の属性 'srcCompat'のリソース識別子が見つかりません

私はちょうどAndroid Studio 2.2を使用してアンドロイド開発を再開しました。私はアンドロイドに移植したいiosアプリを持っています(つまり、アンドロイド用に再作成します)。私はAndroid Studioの基本テンプレートから始め、Constraint LayoutとDRAWABLEフォルダにコピーした2つのPNGファイルを使って2つのImageViewを追加しました。

エラー:属性が見つかり(11)いいえリソース識別子「srcCompat」パッケージ「X.Y.Z」に私はこのエラーを取得構築しようとすると、いかなる変更またはを行わずに

。これは両方の画像で発生します。ここではレイアウトファイルされる:今

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/lib/x.y.z" 
xmlns:app2="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="x.y.z.MainActivity"> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app2:srcCompat="@drawable/pngFile1" 
    android:id="@+id/imageView" 
    app2:layout_constraintBottom_toBottomOf="parent" 
    android:layout_marginEnd="8dp" 
    app2:layout_constraintRight_toRightOf="parent" 
    android:layout_marginBottom="8dp" 
    android:layout_marginRight="8dp" /> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app2:srcCompat="@drawable/pngFile2" 
    android:id="@+id/imageView2" 
    app2:layout_constraintBottom_toTopOf="@+id/imageView" 
    app2:layout_constraintRight_toRightOf="@+id/imageView" 
    android:layout_marginBottom="8dp" /> 

、ここでは、私が理解したいと思いますいくつかのものは私の質問に適切な答えを持っているためには、以下のとおりです。

  • の一部私が見つけた他の答えは、デフォルトを変更するように提案しています。

    xmlns:app = "http://schemas.android.com/apk/res-auto"

xmlns:app="http://schemas.android.com/apk/lib/x.y.z" 

それはこのビルドからエラーを取り除くことは事実だが、何(私の小さなツーなしアンドロイドの経験で)私には奇妙に思える、Androidのメーカーはその後、別のものを作成することです2番目の画像を追加すると同様の行になります。

xmlns:app2="http://schemas.android.com/apk/res-auto" 

これは画像にこれを使用しているため、エラーが再び表示されます。

1年前と同じように、私はAndroidスタジオのアプリで作業していましたが、イメージ/ボタンにイメージを追加するのとほとんど同じ方法を使用していました。

これが、なぜこれが起こっているのか、それを正しく修正する方法を理解したいと思う理由です。

ありがとうございます!

+0

でこの答えを参照することができます詳細についてなどのgradile、

android { defaultConfig { vectorDrawables.useSupportLibrary = true } } 

私は私が年以上のために取り組んできたプロジェクトを持っています画像を追加するのはいつも正常でOKです。最近私は "Constraints Layout"を発見したので、使用し始めました。私はいくつかのimageViewsを落としました。ここでの違いは "srcCompat"です - それはなぜ変わったのですか? App.Compatを最新のバージョンにアップデートすると問題を解決できるように思えますが、私は以前のバージョンに依存しているので、まだやっていません。 –

+0

ここを見れば、いくつかの背景があるかもしれません - 制約レイアウトのプレビュー版を使用しています。これはいくつかの虚偽の動作を説明しています。https://sites.google.com/a/android.com/tools/recent –

答えて

0
<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentEnd="true" 
    android:background="@drawable/cooltext201199220690445" /> 

私はちょうどこのように地雷を変更し、それは私がちょうどsrccompatとすると、「背景」 と交換することを取り出して、私完全に除去「のxmlns:APP2 =」私のため を働いhttp://schemas.android .COM/APK/RES-auto」の希望これはあなたを助けます:)あなたが使用しているアンドロイドスタジオのバージョンに集中するために必要なすべての

+0

xmlns:app部分を削除せずに私のために働いた。このエラーはなぜ発生しますか?それはアプリを生成するAndroidスタジオです:srcCompat – Donato

0

拳。またminSdkVersiontargetSdkVersionをご覧ください。 使用してみてくださいapp2:srcCompat=の代わりにandroid:src=""

app2:srcCompat= suports older APIs when loading vectorDrawable. 

使用する場合は、ビルドを修正してください。あなたはこのlink

を参照することができたり、stackoverflow

関連する問題