20

複数の Android アプリケーションで使用するカスタム ライブラリ (独自のレイアウト リソースを持つ) を Android で作成することは可能ですか?

  • 通常の *.jar ファイルを作成しましたが、ビューを動的に作成/スタイル設定しようとすると、ほとんどのプロパティが機能しません。android.attr.listSeparatorTextViewStyle などのandroid.jarファイルから単純なスタイルを参照しても機能しませんでした。

  • 独自のリソース ファイルを持つアクティビティのない Android プロジェクトを作成し、別の Android プロジェクトからこのプロジェクトを参照してビルド パスで使用しました。すべて正常に動作しているように見えますが、プロジェクトを実行しようとすると、エミュレーターがクラッシュし続けます ( LogCatに意味のあるエラー メッセージは表示されません)。

何か不足していますか?

4

4 に答える 4

17

返信が遅くなるかもしれませんが、これは興味深いものでした。 ライブラリ プロジェクトの設定

Android ライブラリ プロジェクトは、共有の Android ソース コードとリソースを保持する開発プロジェクトです。他の Android アプリケーション プロジェクトは、ライブラリ プロジェクトを参照し、ビルド時にそのコンパイル済みソースを .apk ファイルに含めることができます。複数のアプリケーション プロジェクトが同じライブラリ プロジェクトを参照でき、単一のアプリケーション プロジェクトが複数のライブラリ プロジェクトを参照できます。

複数のアプリケーション プロジェクトに共通するソース コードとリソースがある場合は、それらをライブラリ プロジェクトに移動して、アプリケーションやバージョン間で保守しやすくすることができます。ライブラリ プロジェクトを利用できる一般的なシナリオを次に示します。

于 2011-02-04T06:36:14.980 に答える
13

まあ、それを行う方法はあると思いますが(私は自分で試していませんが)、ライブラリのユーザーが.apkを手動でビルドする必要がありますaapt.

問題は次のとおりです。エクスポートする JAR にはR、ライブラリのリソース ID を保持するクラス ファイルが含まれています。そのため、どのアプリケーションでも JAR をリンクするだけでこれらの ID にアクセスできます。ただし、デフォルトでは、アプリの res/ フォルダー内のリソースのみが APK にバンドルされているため、それだけでは不十分です。したがって、aapt を使用して自分で APK を作成し、ライブラリのリソースも含めるように指示する必要があります。詳細については、aapt ツールのヘルプを確認してください。

これは、ライブラリのユーザーが手動のビルド プロセスを導入する (または少なくとも変更する) 必要があることを意味するため、エクスペリエンスが低下します。

于 2009-12-02T09:46:44.947 に答える
5

複数のAndroidアプリケーションで使用するために、Androidでカスタムライブラリ(独自のレイアウトリソースを持つ)を作成することは可能ですか?

いいえ。JAR はリソースを持つことができません。この方法でコードを共有できますが、リソースは JAR を再利用するアプリケーションに存在する必要があります。

android.attr.listSeparatorTextViewStyle などの android.jar ファイルから単純なスタイルを参照しても機能しませんでした。

JAR を android.jar にリンクしていることを確認してください。私のgithub ページの CWAC コンポーネントで、この例を多数見ることができます。

于 2009-12-02T05:08:57.117 に答える
0

これはR21でも当てはまりますか?ライブラリ プロジェクトを jar ファイルにエクスポートし、コードとアセット ファイルへのアクセスの両方で、他の顧客プロジェクトで正常に使用できます。

まだhttp://developer.android.com/tools/projects/index.htmlには、もはや真実ではないように思われる次のステートメントがあります。

ライブラリ プロジェクトを JAR ファイルにエクスポートできない ライブラリをバイナリ ファイル (JAR ファイルなど) として配布することはできません。これは、SDK ツールの将来のバージョンで追加される予定です。

于 2013-05-03T18:39:54.577 に答える