名前空間に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を実行しようとしましたが、成功しませんでした。
独自のIDを作成する場合:
"@+id/your_new_id"
すでに作成されているIDにアクセスしている場合
"@id/your_old_id"
androidのシステム作成IDにアクセスしようとしている場合
"@Android:id/system_id"
違いを確認できます。独自のIDを作成している場合は、+
を追加する必要があります。システムIDにアクセスしているので、+
を追加する必要はありません。
余分な+
を使用しているようです。
削除して、次のように@+Android:id/background
から@Android:id/background
に置き換えてください。
@ + Android:idを@ + idに置き換えて、機能するかどうかを確認してください。