web-dev-qa-db-ja.com

Androidライブラリプロジェクトのjarを作成する方法

私はjarファイルでクライアントにエクスポートしようとしているライブラリを作成する必要があります。リソースを含むjarを作成する方法はありますか?

Google adMobには、R $ layout.classなどのリソースファイルを含むjarがあります。 このページ それを行う方法を説明していますが、上記の方法を使用してライブラリプロジェクトをアプリケーションにインポートする方法を正確に理解することはできません。

72
Aayush Rana

これは最も近いものです:

ステップ#1:通常のAndroidライブラリプロジェクトを作成し、動作させます。

ステップ#2:Androidライブラリプロジェクトを別のディレクトリにコピーします。

ステップ#3:元のJavaライブラリプロジェクトからコンパイルされたAndroidクラスからJARを作成し、そのJARをステップで作成したコピーのlibs/ディレクトリに配置します#2。このJARでProGuardを手動で実行できるはずですが、私は試していません。

ステップ#4:コピーされたライブラリプロジェクトのsrc/ディレクトリ内のすべてを削除し、src/ディレクトリを残します。

ステップ#5:コピーしたAndroidライブラリプロジェクトを圧縮または配布します。

これにより、Play ServicesプロジェクトのようなAndroidライブラリプロジェクトが提供されます。このプロジェクトでは、リソースは利用できますが、ソースコードは利用できません。

UPDATE:最近のより良いアプローチは、ライブラリプロジェクトをAARとしてパッケージ化することです。これは、コンパイルされたコードと必要なリソースから再利用可能なアーティファクトを作成するAndroidのネイティブな方法です。現在(2014年7月)、Gradle for Android、Android St​​udio、およびAndroid-maven-pluginは、AARを作成および使用できます。

80
CommonsWare

これは動作します!

  1. IsLibraryフラグを選択解除して、ライブラリプロジェクトを通常のプロジェクトにします。
  2. プロジェクトをAndroidアプリケーションとして実行します。 (エラーは表示されません)
  3. .jarファイルが.apkとともにbinフォルダーにあります。
  4. ライブラリを使用する.jarを提供します。
  5. 外部jarをビルドパスにインポートするだけです。

これはすべてのリソースで正常に機能します。みんなありがとう。あなたの応答のために

21
Aayush Rana

次の手順に従って、ライブラリの配布可能なjarを取得します(外部依存関係のないライブラリプロジェクトで検証済み)。

  1. ライブラリプロジェクトを作成します。掃除してbinフォルダー内にlibraryProjectName.jarファイルを取得します。 (ライブラリプロジェクトで"is Library"selectedであることを確認してください。
  2. .jarファイルをターゲットアプリケーションlibsフォルダーにコピーします
  3. ワークスペースを更新し、Ctr+Shift+O(Windwows/Linuxの場合)またはCmd+Shift+O(Macの場合)を押して、追加されたライブラリからインポートの依存関係を解決します。

問題に直面した場合のコメント。

13
Akshat Singhal

ADT 22.2.1でテスト済み

  1. ライブラリプロジェクトを作成する
  2. 空のプロジェクトを作成する
  3. ライブラリプロジェクトを空のプロジェクトに追加します
  4. ビルドプロジェクト
  5. / genフォルダには、ライブラリプロジェクトのクラスがあり、これにはlibプロジェクトのリソースが含まれています。
  6. JARのエクスポート(このクラスのみを選択します.../genフォルダーから)
  7. LibプロジェクトからJARをエクスポートします
  8. エクスポートされたファイルの名前をZipに変更し、コンテンツをマージします
  9. 最終ファイルの名前をJARに変更し、プロジェクトに追加します。
3
coltbg

リソースファイルをjarにパッケージ化することはできません。プロジェクトをライブラリプロジェクトとしてエクスポートできます。

Android内のリソースを参照しないユーティリティクラス、つまり純粋なJavaクラスをjarファイルとしてエクスポートします。

以下のリンクを確認してください

http://developer.Android.com/tools/projects/index.html

プロジェクトをライブラリプロジェクトにするには

プロジェクトを右クリックします。プロパティに移動します。 Androidを選択します。 [ライブラリ]がオンになっていることを確認します。

Androidプロジェクトでライブラリプロジェクトを参照するには

プロジェクトを右クリックします。プロパティに移動します。 Androidを選択します。追加をクリックします。ライブラリプロジェクトを参照します。

ドキュメントからの引用

ライブラリプロジェクトは、標準のAndroidアプリケーションプロジェクトとは異なり、独自の.apkに直接コンパイルしてAndroidデバイスで実行することはできません。同様に、真のライブラリの場合のように、ライブラリプロジェクトを自己完結型のJARファイルにエクスポートすることはできません。代わりに、依存アプリケーションでライブラリを参照し、そのアプリケーションをビルドして、ライブラリを間接的にコンパイルする必要があります。

2
Raghunandan

最新のAndroid St​​udio v1.2によれば、ケーキを作るのと同じくらい簡単です。 このリンク のスクリーンショットで既に完全なソリューションに回答済み

1
Nishant.

これは、antで簡単に行う方法です。これはVolleyのソースコードにあります。以下のコードをcustom_rules.xmlに追加し、ant jarでビルドします

<?xml version="1.0" encoding="UTF-8"?>
<project name="volley-rules" default="help">

  <!-- A rule to generate the JAR for inclusion in an Android
       application. Output file will be bin/volley.jar -->
  <target name="jar" depends="-compile">
    <jar destfile="bin/volley.jar"
         basedir="bin/classes" />
  </target>
</project>
1
schwiz

Eclipse ADT v22.6.2では、[ファイル]、[エクスポート]、[Java]、[Jarファイル]の順にクリックして、jarをエクスポートし、ディレクトリと保存先を選択します。

0
someUser