は私がAndroidスタイルを別のパッケージ名に配置することはできますか?例えば
@style/...
...と...
@android:style/...
と自分のアプリのスタイルでAndroidのスタイルを参照するが、どのように私は他の名前のパッケージに自分のスタイルを分けることができますか?例えば
@somePackage:style/...
は私がAndroidスタイルを別のパッケージ名に配置することはできますか?例えば
@style/...
...と...
@android:style/...
と自分のアプリのスタイルでAndroidのスタイルを参照するが、どのように私は他の名前のパッケージに自分のスタイルを分けることができますか?例えば
@somePackage:style/...
残念ながら、あなたはできません。 Android Librariesが役立つかもしれないと思うかもしれませんが、そうではありません。これは、Androidライブラリがリソースのコンパイル時にメインアプリケーションに「物理的に」マージされるためです。
したがって、aapt
から、アプリケーションのリソースは他のAndroidライブラリのリソースと区別できません。さらに、aapt
は複数のリソースディレクトリを入力として受け取ります(つまり、アプリケーションの場合はres
へのパス、リファレンスのAndroidライブラリのすべてのres
ディレクトリへのパス)。同時に、アプリケーションからの単一のAndroidManifest.xml
がこれらのリソースの「所有者」として渡されます。
リソース(スタイルなど)を別々のAndroidライブラリに論理的にグループ化することはできますが、これらのAndroidライブラリのパッケージ名を使用してリソースを参照することはできません。メインアプリケーションのパッケージ名のみを使用します。
はたとえば、パッケージ名com.test.app
とcom.test.lib
とAndroidのライブラリを使用してアプリケーションを持っています。ライブラリにはスタイルtestStyle
が含まれています。
次が動作しない(そして、あなたがこの問題を回避するために助けることができるものは何も理論的にはありません):
<TextView style="@com.test.lib:style/testStyle" .../>
これが正常に動作している間:
<TextView style="@com.test.app:style/testStyle" .../>