2011-06-21 14 views
3

私はカスタムビューでAPIを作成しています。ビューでXMLのカスタム属性を使用できるようにするには、APIとして「Android Library Project」を使用します。これにより、私はattrs.xmlで私のカスタム属性の定義を宣言できます。Androidライブラリプロジェクトをコンパイル済みJARライブラリ

しかし、ライブラリプロジェクトをJARファイルに書き出すときにライブラリプロジェクトを使用する際に問題が発生しています。 JARを参照するプロジェクトは、JARに含まれるアンドロイドリソースファイルに問題が発生します。誰もこれを達成する方法を知っていますか?私は私の質問ではっきりしていることを願っています。 この場合、プロジェクトをオープンソースプロジェクトにすることはできません。

[更新] から:。http://developer.android.com/guide/developing/projects/index.html#considerations

は、「あなたはJARファイル にライブラリをライブラリプロジェクトをエクスポートすることはできません。これは、ライブラリプロジェクトためである(例えばjarファイルなど)のバイナリファイルとして配布することはできません正しいリソースIDを使用するためにメインプロジェクトによってコンパイルされます。

私はそのような答えが私の質問だと思います。私は半分の解決策を試みました。 JavaソースファイルからJARを生成し、JARを使用する各プロジェクトにattrs.xmlとしてAndroid xmlリソースのみを追加することです。しかし、それは私が達成したいことのための良い解決策ではありません。私はソースとXMLリソースの両方を持つJARが必要ですが、これに対する解決策は見つかりませんでした。

+0

あなたはどのようなエラーを出すことができますか? –

+0

@ neeraj-namaリソース(genフォルダを含む)を含むAndroidライブラリをJARにエクスポートすると、JARを参照するプロジェクトは独自のRファイルを作成することができません。これは、通常のAndroidライブラリプロジェクトの参照では動作しますが、JARではそうではありません。少なくとも私はそれをやる方法を考えていない。 – likebobby

答えて

0

構築時間を短縮するため、r16ツールはAndroidライブラリプロジェクト内に独自のjarファイルを作成しています。この機能を使用して、この問題を解決することができます。 Android Library Projectをリリースしたいが、ソースコードがない場合は、そのAndroid Library Projectのコピーを作成して、ソースコードツリー以外のすべてを含むことができます。次に、元のAndroidライブラリPorject(r16ツールが構築したもの)からjarファイルをインクルードします。これにより、ソースコードを必要としない配布可能なコンポーネントを持つことができます。この新しいAndroidライブラリプロジェクトのコンシューマーは、必要に応じて(アクティビティ、プロバイダ、権限など)、必要なメタデータを自分のプロジェクトのAndroidManifest.xmlファイルに手動で追加する必要があります。

1

code.google.com Issue 9656: Library projects don't support custom XML attributes for custom classeからの更新...ツールが17個ある場合は...そのリンクのテキストから、具体的

カスタムとカスタムビューのサポートが追加され、ライブラリの属性

は、「SDKのR17の新機能」に見てみましょう。 カスタム属性を使用するレイアウトでは、 にアプリパッケージ名が含まれているURIの代わりに、名前空間URI http://schemas.android.com/apk/res-autoを使用する必要があります。このURIは、ビルド時に の特定のURIに置き換えられます。

今日は魅力的な私のために働いた!私は今私のカスタムウィジェットを含むライブラリを持っているので、私はすべての私のプロジェクトで参照することができます。

+1

この機能はどのように使用されていますか?私のライブラリのJARを作成するにはどうすればいいですか? –

関連する問題