すべて。私はAndroidライブラリプロジェクトを作成しましたが、メインプロジェクトから参照すると完全に機能します。しかし、ライブラリプロジェクトを別々にビルドすると、R.javaとリソースが含まれません。リソースとR.javaを使用してライブラリプロジェクトを構築する方法はありますか?
2 に答える
私は Eclipse を使用しており、Android ライブラリ プロジェクトを個別に手動でビルドすることはありませんが、こちらの公式開発ガイドに記載されている開発上の考慮事項があなたの質問に答えるはずです。
各ライブラリ プロジェクトは独自の R クラスを作成します
依存アプリケーション プロジェクトをビルドすると、ライブラリ プロジェクトがコンパイルされ、アプリケーション プロジェクトとマージされます。各ライブラリには、ライブラリのパッケージ名に従って名前が付けられた独自の R クラスがあります。メイン プロジェクトとライブラリ プロジェクトから生成された R クラスは、メイン プロジェクトのパッケージとライブラリのパッケージを含む必要なすべてのパッケージで作成されます。
公式の dev giude Library Projectsから引用された別のメモで更新します。
ただし、ライブラリ プロジェクトは、独自の .apk に直接コンパイルして Android デバイスで実行できないという点で、標準の Android アプリケーション プロジェクトとは異なります。同様に、真のライブラリの場合とは異なり、ライブラリ プロジェクトを自己完結型の JAR ファイルにエクスポートすることはできません。代わりに、依存アプリケーションでライブラリを参照してそのアプリケーションをビルドすることにより、ライブラリを間接的にコンパイルする必要があります。
今は無理です。
これで、次の手順でバイナリのみのライブラリ プロジェクトを作成できます。
- ソース コードなどを使用して Android ライブラリ プロジェクトを作成します。これがマスター プロジェクトであり、そこから配布用のライブラリ プロジェクトのバージョンを作成します。
- Java ソースをコンパイル (例: ant コンパイル) し、JAR ファイルに変換します。
- マスター ライブラリ プロジェクトと同じリソースを使用して配布 Android ライブラリ プロジェクトを作成しますが、ソース コードは使用しません。
- JAR ファイルを配布 Android ライブラリ プロジェクトの libs/ ディレクトリに配置します。結果として得られる配布 Android ライブラリ プロジェクトには、メイン プロジェクトに必要なものがすべて含まれていますが、ソース コードは含まれていません。
このソリューションにはいくつかの制限があります。
- まだリソースを出荷する必要があります。
- R. 値を使用しないようにコードを書き直す必要があります。getResources().getIdentifier() および/またはリフレクションを使用して、すべてのリソース ID を検索する必要があります。