Android Studioでライブラリ用のaarファイルを作成したいのですが、jarオプションを使用したのですが、ライブラリにリソースがあります。
ライブラリからaarファイルを作成する方法はありますか?
Android Studioでライブラリ用のaarファイルを作成したいのですが、jarオプションを使用したのですが、ライブラリにリソースがあります。
ライブラリからaarファイルを作成する方法はありますか?
回答:
ライブラリがAndroidライブラリとして設定されている場合(つまりapply plugin: 'com.android.library'
、build.gradleファイル内のステートメントを使用している場合)、ライブラリはビルド時に.aarを出力します。build / outputs / aar /に表示されますモジュールのディレクトリディレクトリに表示されます。
[ファイル]> [新しいモジュール]で「Androidライブラリ」タイプを選択して、新しいAndroidライブラリを作成できます。
aar
、Build > Rebuild Project
Android Studioでを実行する必要があったことに注意してください。単に実行、デバッグ、またはAPKをビルドするだけでは生成さaar
れませんでした。
./gradlew moduleName:assembleRelease
、ターミナルタブでのより速い方法
Androidライブラリプロジェクトとして定義されたモジュールがある場合build/outputs/aar/
、そのプロジェクトのディレクトリにすべてのビルドフレーバー(デフォルトではデバッグおよびリリース)の.aarファイルが作成されます。
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
これらのファイルが存在しない場合は、
gradlew assemble
macOSユーザー向け
./gradlew assemble
ライブラリプロジェクトには、build.gradle
を含むファイルがありますapply plugin: com.android.library
。としてパッケージ化されたこのライブラリの参照用.aar
ファイルパッケージやバージョンなどのプロパティを定義する必要がます。
build.gradle
ライブラリのサンプルファイル(この例にはリリースの難読化が含まれています):
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName "0.1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
アプリプロジェクト.aar
では、このファイルをlibs
フォルダーにドロップbuild.gradle
し、以下の例を使用してこのライブラリを参照するようにファイルを更新できます。
apply plugin: 'com.android.application'
repositories {
mavenCentral()
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
android {
compileSdkVersion 21
buildToolsVersion "21.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 20
versionCode 4
versionName "0.4.0"
applicationId "yourdomain.yourpackage"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
}
}
}
dependencies {
compile 'be.hcpl.android.appframework:appframework:0.1.0@aar'
}
Gradleでローカルの依存関係ファイルを参照するための代替オプションは、http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-projectにあります。
これらの.aar
ファイルを組織内で共有する必要がある場合は、mavenをチェックしてください。このトピックに関するすばらしい記事は、次の場所にあります。 https //web.archive.org/web/20141002122437/http //blog.glassdiary.com/post/67134169807/how-to-share-android-archive-にあります。ライブラリーaar-across
aarファイルは.zip
、代替の拡張子と特定のコンテンツを持つ単なるです。詳細については、aar形式に関するこのリンクを確認してください。
gradlew assemble
私が抱えていた問題を解決しました。
gradlew
あるスクリプトです。
同じスレッドでhcplの回答に記載されている最初と2番目の手順を実行した後、「 '*。aar']、dir: 'libs'をour-android-app-project-based-on-gradle / app / に追加しました次に示すbuild.gradleファイル:
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
私たちのgradleバージョンはcom.android.tools.build:gradle:3.2.1です
AARを作成するには
作成中、以下の手順に従います。
File->New->New Module->Android Library and create
。
AARを生成するには
以下の手順に従って、Android Studioの右上のペインにあるGradleに移動します。
Gradle->Drop down library name -> tasks-> build-> assemble or assemble release
AARはbuild / outputs / aar /に生成されます
ただし、AARをプロジェクトディレクトリの特定のフォルダに希望の名前で生成したい場合は、build.gradle
以下のようにアプリレベルを変更します。
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
versionCode System.getenv("BUILD_NUMBER") as Integer ?: 1
versionName "0.0.${versionCode}"
libraryVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "/../../../../release/" + ("your_recommended_name.aar")
}
}
}
これで、AARを持つプロジェクトディレクトリに「release」という名前のフォルダが作成されます。
btw @aarには推移的な依存関係はありません。あなたはそれをオンにするためにパラメータが必要です: 推移的な依存関係はgradleを使用したaarライブラリでは解決されません