1

私がしたこと

カスタム属性を備えたいくつかのカスタムビューを含むライブラリプロジェクトを作成しました。ライブラリには、ビューをテストするためのテストレイアウトも含まれています。

私も読んだ:https ://code.google.com/p/android/issues/detail?id = 9656#c81

したがって、ライブラリのテストレイアウト内で、http://schemas.android.com/apk/res-auto名前空間を使用します。

私がやろうとしていること

次に、ライブラリを使用するための新しいプロジェクトを開始しました。ソースコードを共有する場合、このプロジェクトにライブラリを含めるのは非常に簡単でした。テストアプリのメインアクティビティ内で、次を使用してテストレイアウトを簡単に膨らませることができましたsetContentView(R.layout.libactivity)

ただし、ライブラリプロジェクトを閉じて、ライブラリのjarファイルを使用しようとすると、困難であることがわかります。

ライブラリの/binフォルダにライブラリjarが見つかりましたが、クラスのみが含まれ、リソースは含まれていませんでした。

次に、ライブラリのjarをエクスポートしました。これには、リソースファイルと.classファイルが含まれていました。しかし、これはどのように使用されますか?

特定の問題

libactivityライブラリに含めたテストアクティビティをどのように膨らませることができますか?

stackoverflowにこのような同様の質問があることは知っていますが、Googleがライブラリにリソースファイルを含めることを可能にしたため、それらは古く、矛盾しているようです。

4

2 に答える 2

2

これが、ソースコードを共有せずにライブラリプロジェクトを作成する方法です。ベースライブラリとリリースライブラリの2つのプロジェクトが必要です。

ベースライブラリ-これは、すべてのソースコード、つまりすべてのアクティビティ、カスタムビューなどを配置する場所です。必要に応じて、このライブラリにリソースファイルを配置できますが、必須ではありません。

リリースライブラリ-ベースライブラリのbin/フォルダからのjarと、含めるリソースファイルが含まれています。ベースライブラリプロジェクトにリソースファイルを含めた場合は、それらをこのプロジェクトにコピーする必要があります。

コードを使用する場合は、他の共有ライブラリを含めるのと同じようにリリースライブラリを追加します。ソースコードはjarファイルにあるため、利用可能ですが非表示になります。他に注意すべきことは、リソースファイルは共有ライブラリプロジェクトにあるため、表示されることです。残念ながら、私はそれらを見えないようにする方法を見つけることができませんでした。

したがって、具体的には、カスタムビューをベースライブラリプロジェクトに配置します。テストレイアウトは、リリースライブラリプロジェクトに含める必要があります。

3番目のプロジェクト(ライブラリをテストするためのプロジェクト)には、リリースライブラリへの参照が必要なだけで、準備は整っているはずです。

于 2013-03-26T02:49:49.843 に答える
0

ハ...それはいい質問です。xmlsを使用してライブラリプロジェクトをエクスポートする場合は、どちらでも構いません...

次に、エクスポートしたライブラリJarを起動プロジェクトのlibsフォルダーに追加すると、これらのXMLがRファイルに含まれます。

それがうまくいったかどうか教えてください...

于 2013-03-25T23:56:22.393 に答える