web-dev-qa-db-ja.com

配布用にAndroid Jarライブラリを作成します

Androidライブラリプロジェクトを知っています。これにより、必要に応じてAndroidアプリケーションに取り込むことができる共有ソースプロジェクトを作成できます。ただし、そのためにはソースが利用可能である必要があります。

従来のJARのような他のAndroidプロジェクトで使用できるクローズドソースライブラリを構築および配布する方法を探しています。これにはAndroidコンパイラーを使用する必要があるため、Vanilla-Java JARファイルではありません。 FWIW、JARにリソース/レイアウトを埋め込む必要はありません。

http://andparcel.com/ を見たことがありますが、これは回避策のように感じられ、Googleが「公式にサポートする」ものを使用したいと思います。また、ビルドするJARがAndroid SDKの古い/新しいバージョンと互換性があることを確認する必要があります(つまり、ターゲットプラットフォームのバージョンを設定する方法などが必要です)。

最新のAndroidツールセットは、JARバイナリの作成/消費を許可していますか?どうすればできるかについてのドキュメントを参照できますか?

159
psychotik

リソースなしでAndroid Libraryプロジェクトを作成すると、ADT(r16で最初に気づいた)は、 'bin'フォルダー内のプロジェクトと同じ名前の.jarを作成します。

49
Freddroid

Androidは、特別な種類のAndroid-JARを提供しません。しかし、できることは、build.xmlをプロジェクトに追加し、antでJARをビルドすることです。

私のbuild.xmlは次のようになります:

<project name="MyAndroidLib" default="dist" basedir=".">
  <description>
This is my Android lib
  </description>
  <!-- set global properties for this build -->
  <property name="src" location="src" />
  <property name="bin" location="bin" />

  <target name="jar">
    <jar destfile="MyAndroidLib.jar" basedir="bin/classes/">
      <!-- replace 'com' by what ever you are using -->
      <!-- as first part of the package name -->
      <!-- e.g. de, org, ... -->
      <!-- the ** is important to include the directory recursively -->
      <include name="com/**" />
    </jar>
  </target>
</project>

プロジェクトのメインフォルダーでant jarを実行してJARをビルドします。

23
white_gecko

「通常の」Javaプロジェクトを作成し、そこからAndroid.jarをインポートできます。その後、SDKのすべてのコンポーネントにアクセスできます。次に、プロジェクトをjarとしてエクスポートし、Androidアプリからロードします。これは非常にうまく機能し、それを行うには単純で単純な方法のようです。

17
ferostar

jarを作成するプロジェクトのプロパティに移動します。Androidタブをクリックします。 Isライブラリをチェックします。これで、binフォルダーに.jarファイルが表示されます。使用したい場所で使用してください。

15
Dhrupal

Googleが「公式にサポートする」唯一のソリューションはライブラリプロジェクトであり、ソースコードを配布する必要があります。 JARは通常の方法で作成できますが、その中にリソースを含めたり参照したりすることはできません。

残念ながら、ソースコードの要件を回避する手段として、ライブラリプロジェクトにパッケージ化されたJARを含めることもできません。

10
Jeff Gilfelt

Android St​​udio 1.2の最新ビルドでは、JARライブラリの作成がポイントアンドクリックと同じくらい簡単になりました。

従うべき手順:

  • Goto File-> New-> New Module enter image description here
  • オプションリストの最後にある「Javaライブラリ」を選択します enter image description here
  • Jar libの名前とその中のクラスの名前を入力し、終了ボタンを押します enter image description here
  • それでおしまい !

次のステップは、Jarライブラリをアプリの依存関係として追加することです。そのようにシンプル

  • ファイルに移動->プロジェクト構造->「アプリ」を選択->「依存関係」を選択
  • 下部の「+」を選択->「モジュールの依存関係」を選択 enter image description here
  • 上記で作成したjar libモジュールを選択します enter image description hereenter image description here
  • Okを選択して、それだけです!

....または、次の行をアプリのgradleファイルに追加するだけです

dependencies {
      compile fileTree(dir: 'libs', include: ['*.jar']) // Default Gradle Task, should be already present
      compile 'com.Android.support:appcompat-v7:21.0.3' // Default Gradle Task, should be already present

      compile project(':nameOfYourJarLibraryModule') // This is your jar library module
 }

GoogleはAndroid Archive(AAR)を推進していますが、サポートされているJARはAndroid studioに戻されています。AARとJARの違いを確認するには、 このリンク

8
Nishant.

これを試してください:これは動作します

1)IsLibraryフラグを選択解除して、ライブラリプロジェクトを通常のプロジェクトにします。

2)プロジェクトをAndroidアプリケーションとして実行します。 (エラーは表示されません)

3).apkとともにbinフォルダーに.jarファイルがあります。

4)ライブラリを使用する.jarを提供します。

5)外部jarをビルドパスにインポートするように指示します。

これはすべてのリソースで正常に機能します。幸運を祈ります。

6
Aayush Rana

ADTは、プロジェクト内のすべての一致するソースファイルとディレクトリのすべてのクラスファイルを含むbinフォルダーを作成します。jarコマンドを使用して、これらのクラスファイルとディレクトリを含むjarアーカイブを作成できますが、もちろんクラスファイルのプラットフォームレベルは、プロジェクトビルドの現在のレベルのみを対象とします。プラットフォームレベルごとに異なるjarファイルが必要になります。ただし、これの素晴らしい点は、R.classファイルがプロジェクトディレクトリツリーに含まれているため、そのリソースにアクセスできることです。これがAndroidで物事を行う公式の方法であるかどうかはわかりませんが、私にとってはうまくいきました。

1
David Evans

.jarは、.classファイルを含む.Zipファイルです(.jarファイルの拡張子を.Zipに変更して、結果を確認できます)。 簡単に、.classファイルを圧縮することにより、あらゆる目的のために.jarライブラリを作成できます。

0
Renzokuken

ファイルproject.propertiesを開き、値Android.library = trueを入力します

プロジェクトのEclipseメニューからファイルを保存し、「自動的にビルド」を選択し、「クリーン」を選択しますビンの下に新しいjarが作成されます

0
Pana Technica

このプロジェクトでは、/ system/frameworkにインストールされるapk(apkbuilderを使用)を作成し、このapkをデフォルトのクラスパスに追加しています。 jarを使用してアプリケーションをコンパイルするために、jarファイルを作成しています(jar cを使用)。

注:ライブラリにはリソースがありません。

0
Karan