LoginSignup
17
17

More than 5 years have passed since last update.

ライブラリプロジェクトのリソースとアプリプロジェクトのリソースの競合を避けるためにライブラリプロジェクトで出来ること

Posted at

Android では、各種のリソース管理はアプリケーションプロジェクトに含まれるリソースのものが優先されるように作られています。
つまり、 ライブラリプロジェクトと同じ名前のリソースをアプリケーションプロジェクトに配置すると、アプリケーションプロジェクトのものが使われる ことになります。

意図しないリソースの競合を避けるには、ライブラリプロジェクト側の配慮が必要です。
幸いなことに、ビルドスクリプトでこれに対応することができます。

リソース名の接頭辞を宣言する

以下の様にすることで、自分のライブラリで使用する接頭辞を宣言します。

build.gradle

android {
  resourcePrefix 'mylib_'
}

こうしておくと、 この接頭辞が付与されていないリソースに対して Lint による警告 が出力されるようになります。

本当は自動で接頭辞付けてくれたらいいんだけどな…

AndroidStudio における警告表示は、0.5.8 から対応しています。

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17