Androidライブラリプロジェクトを知っています。これにより、必要に応じてAndroidアプリケーションに取り込むことができる共有ソースプロジェクトを作成できます。ただし、そのためにはソースが利用可能である必要があります。
従来のJARのような他のAndroidプロジェクトで使用できるクローズドソースライブラリを構築および配布する方法を探しています。これにはAndroidコンパイラーを使用する必要があるため、Vanilla-Java JARファイルではありません。 FWIW、JARにリソース/レイアウトを埋め込む必要はありません。
http://andparcel.com/ を見たことがありますが、これは回避策のように感じられ、Googleが「公式にサポートする」ものを使用したいと思います。また、ビルドするJARがAndroid SDKの古い/新しいバージョンと互換性があることを確認する必要があります(つまり、ターゲットプラットフォームのバージョンを設定する方法などが必要です)。
最新のAndroidツールセットは、JARバイナリの作成/消費を許可していますか?どうすればできるかについてのドキュメントを参照できますか?
リソースなしでAndroid Libraryプロジェクトを作成すると、ADT(r16で最初に気づいた)は、 'bin'フォルダー内のプロジェクトと同じ名前の.jarを作成します。
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をビルドします。
「通常の」Javaプロジェクトを作成し、そこからAndroid.jarをインポートできます。その後、SDKのすべてのコンポーネントにアクセスできます。次に、プロジェクトをjarとしてエクスポートし、Androidアプリからロードします。これは非常にうまく機能し、それを行うには単純で単純な方法のようです。
jarを作成するプロジェクトのプロパティに移動します。Androidタブをクリックします。 Isライブラリをチェックします。これで、binフォルダーに.jarファイルが表示されます。使用したい場所で使用してください。
Googleが「公式にサポートする」唯一のソリューションはライブラリプロジェクトであり、ソースコードを配布する必要があります。 JARは通常の方法で作成できますが、その中にリソースを含めたり参照したりすることはできません。
残念ながら、ソースコードの要件を回避する手段として、ライブラリプロジェクトにパッケージ化されたJARを含めることもできません。
Android Studio 1.2の最新ビルドでは、JARライブラリの作成がポイントアンドクリックと同じくらい簡単になりました。
従うべき手順:
次のステップは、Jarライブラリをアプリの依存関係として追加することです。そのようにシンプル
....または、次の行をアプリの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の違いを確認するには、 このリンク
これを試してください:これは動作します
1)IsLibraryフラグを選択解除して、ライブラリプロジェクトを通常のプロジェクトにします。
2)プロジェクトをAndroidアプリケーションとして実行します。 (エラーは表示されません)
3).apkとともにbinフォルダーに.jarファイルがあります。
4)ライブラリを使用する.jarを提供します。
5)外部jarをビルドパスにインポートするように指示します。
これはすべてのリソースで正常に機能します。幸運を祈ります。
ADTは、プロジェクト内のすべての一致するソースファイルとディレクトリのすべてのクラスファイルを含むbinフォルダーを作成します。jarコマンドを使用して、これらのクラスファイルとディレクトリを含むjarアーカイブを作成できますが、もちろんクラスファイルのプラットフォームレベルは、プロジェクトビルドの現在のレベルのみを対象とします。プラットフォームレベルごとに異なるjarファイルが必要になります。ただし、これの素晴らしい点は、R.classファイルがプロジェクトディレクトリツリーに含まれているため、そのリソースにアクセスできることです。これがAndroidで物事を行う公式の方法であるかどうかはわかりませんが、私にとってはうまくいきました。
.jarは、.classファイルを含む.Zipファイルです(.jarファイルの拡張子を.Zipに変更して、結果を確認できます)。 簡単に、.classファイルを圧縮することにより、あらゆる目的のために.jarライブラリを作成できます。
ファイルproject.propertiesを開き、値Android.library = trueを入力します
プロジェクトのEclipseメニューからファイルを保存し、「自動的にビルド」を選択し、「クリーン」を選択しますビンの下に新しいjarが作成されます
このプロジェクトでは、/ system/frameworkにインストールされるapk(apkbuilderを使用)を作成し、このapkをデフォルトのクラスパスに追加しています。 jarを使用してアプリケーションをコンパイルするために、jarファイルを作成しています(jar cを使用)。
注:ライブラリにはリソースがありません。