私はAndroidStudioを使用しており、次のようなプロジェクトがあります。
青い円の中にあるのはmyLibです。myLibは、赤い円の内側にある外部libと、apacheパッケージ(緑の円)も使用する必要があります。
したがって、この全体を単一の.jarにして、別のプロジェクトで使用できるようにしたいと考えています。
ステップバイステップのガイドは本当にありがたいです、私は開発者の世界の初心者です。
ありがとう!
私はAndroidStudioを使用しており、次のようなプロジェクトがあります。
青い円の中にあるのはmyLibです。myLibは、赤い円の内側にある外部libと、apacheパッケージ(緑の円)も使用する必要があります。
したがって、この全体を単一の.jarにして、別のプロジェクトで使用できるようにしたいと考えています。
ステップバイステップのガイドは本当にありがたいです、私は開発者の世界の初心者です。
ありがとう!
回答:
上記のコード:
task deleteJar(type: Delete) {
delete 'libs/jars/logmanagementlib.jar'
}
task createJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('libs/jars/')
include('classes.jar')
rename('classes.jar', 'logmanagementlib.jar')
}
createJar.dependsOn(deleteJar, build)
release
。とは持っていますが、フォルダはdebug
ありdefault
ませんrelease
。使用しているプラグインのバージョンは何ですか?これがどこかで文書化されているかどうか知っていますか?
release
フォルダーがありません。
GradleでプレーンJavaモジュールとしてコードを設定した場合、Gradleにコンテンツを含むjarファイルを提供させるのは非常に簡単です。そのjarファイルにはコードのみが含まれ、依存する他のApacheライブラリは含まれません。この方法で配布することをお勧めします。ライブラリ内に依存関係をバンドルするのは少し奇妙であり、それらのライブラリのユーザーが独自にそれらの依存関係を含める必要があるのはより一般的です(そうでない場合、これらのプロジェクトの衝突が、おそらく異なるバージョンのライブラリのコピーをすでにリンクしているためです)。さらに、ライブラリを公開する場合は、他の人のコードの再配布に関する潜在的なライセンスの問題を回避できます。
jarにコンパイルする必要があるコードを取り、それをAndroid Studioの別のプレーンJavaモジュールに移動します。
うまくいけば、プロジェクトは現在正常にビルドされているはずです。ビルドを実行すると、Javaライブラリのjarファイルがモジュールのディレクトリのbuild / libsディレクトリに配置されます。jarファイルを手動でビルドする場合は、Gradleウィンドウからjarビルドファイルタスクを実行できます。
Android Studio IDEで、次の方法で「Run Anything bar」にアクセスします。
CTRL+ CTRL+ gradle CreateFullJarRelease
+ENTER
その後、プロジェクトのこのフォルダにアーティファクトが見つかります
Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar
GradleにはTask
、gradleサイドメニューのother
フォルダーの下にすでにそのためのがあります。
次に、下にスクロールしてcreateFullJarRelease
クリックします。
その後、プロジェクトのこのフォルダにアーティファクトが見つかります
Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar
build\intermediates\intermediate-jars\release
classes.jar
、、full.jar
およびres.jar
。使用したいときはいつでもすべてのjarファイルをインポートする必要がありますか?
これをJavaモジュールのbuild.gradleに追加するだけです。依存ライブラリがアーカイブに含まれます。
mainClassName = "com.company.application.Main"
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
これにより、[module_name] / build / libs / [module_name] .jarファイルが生成されます。
.jarファイルは、アプリケーションをコンパイル/実行すると自動的に生成されます。
class.jarファイルは、root_folder / app / build / intermediates / bundles / debugから見つけることができます
Android Studioの[Gradle]タブに移動し、ライブラリプロジェクトを選択します。
次に、タスクに移動します
次に、その他に移動します
bundleReleaseaarをダブルクリックします
次の場所に.aar
ファイルを見つけることができますyour_module/build/outputs/aar/your-release.aar
.jar
ないのかです.aar
task deleteJar(type: Delete) {
delete 'libs/mylibrary.jar'
}
task exportjar(type: Copy) {
from('build/intermediates/compile_library_classes/release/')
into('libs/')
include('classes.jar')
rename('classes.jar', 'mylibrary.jar')
}
exportjar.dependsOn(deleteJar, build)
AndroidStudioからgradleタスクを実行する場合[詳細]
assembleRelease
//or
bundleReleaseAar
またはターミナル経由
./gradlew <moduleName>:assembleRelease
//or
./gradlew <moduleName>:bundleReleaseAar
あなたは見つけることができます.aar
で
<project_path>/build/outputs/aar/<module_name>.aar
//if you do not see it try to remove this folder and repeat the command
.aar
(Androidライブラリ)ファイルは、.jar
(Javaライブラリ)ファイルと追加のAndroidリソースで構成されます。.aar
fileはaar拡張子の付いたzipファイルです。そのため.aar
、置換.zip
または実行できます。
unzip "<path_to/module_name>.aar"