web-dev-qa-db-ja.com

Android:id = "@ + Android:id / my_id"を使用すると「シンボルを解決できません」エラー

名前空間にAndroid:id/backgroundを追加すると、呼び出しではなく追加を要求しているにもかかわらず、Lintから「シンボルを解決できません」というメッセージが表示されます。コードは記述どおりに機能しますが、エラーは解決しません。 <item Android:id="@+Android:id/background" to <item Android:id="@+id/background"、アプリケーションは動作を停止します(別の呼び出しは中断します)。私の質問は、名前空間への呼び出しが正常に機能しているにもかかわらず、なぜLintがAndroid:id/backgroundを名前空間に追加したことを認識しないのですか?このアイテムにLintがエラーをスローさせないIDを与えるより良い方法はありますか?

以下の画層リストの項目の3つの名前空間定義はすべて、lintエラーをスローします。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:id="@+Android:id/background"
        Android:drawable="@drawable/custom_ratingbar_empty" />
    <item Android:id="@+Android:id/secondaryProgress"
        Android:drawable="@drawable/custom_ratingbar_empty" />
    <item Android:id="@+Android:id/progress"
        Android:drawable="@drawable/custom_ratingbar_filled" />
</layer-list>

私は this を見つけ、提案どおりにbuild-> cleanを実行しようとしましたが、成功しませんでした。

16
Ethan Keller

独自のIDを作成する場合:

"@+id/your_new_id"

すでに作成されているIDにアクセスしている場合

"@id/your_old_id"

androidのシステム作成IDにアクセスしようとしている場合

"@Android:id/system_id"

違いを確認できます。独自のIDを作成している場合は、+を追加する必要があります。システムIDにアクセスしているので、+を追加する必要はありません。

32
Sharj

余分な+を使用しているようです。

削除して、次のように@+Android:id/backgroundから@Android:id/backgroundに置き換えてください。

7
tato.rodrigo

@ + Android:idを@ + idに置き換えて、機能するかどうかを確認してください。

0
Maha Benabbou