私はAndroid Studioで私のライブラリ用のaarファイルを作りたいのですが、私はjarオプションで行っていたでしょうが、私のライブラリにはリソースがあります。
ライブラリからAARファイルを作成する方法はありますか。
ライブラリがAndroidライブラリとして設定されている場合(つまり、build.gradleファイルでapply plugin: 'com.Android.library'
ステートメントを使用している場合)、ビルド時に.aarを出力します。それはに表示されます ビルド/出力/ aar / モジュールのディレクトリ内のディレクトリ。
File> New Moduleで "Android Library"タイプを選択して新しいAndroidライブラリを作成することができます。
Androidライブラリプロジェクトとして定義されたモジュールがある場合は、そのプロジェクトのbuild/outputs/aar/
ディレクトリに、すべてのビルドフレーバー(デフォルトではデバッグおよびリリース)の.aarファイルが用意されています。
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
これらのファイルが存在しない場合は、ビルドを開始してください。
gradlew assemble
ライブラリプロジェクトには、build.gradle
を含むapply plugin: com.Android.library
ファイルがあります。 .aar
ファイルとしてパッケージ化されたこのライブラリを参照するには、packageやversionなどのいくつかのプロパティを定義する必要があります。
ライブラリ用の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 - アンドロイド - プロジェクト
組織内でこれらの.aar
ファイルを共有する必要がある場合は、mavenをチェックしてください。このトピックに関するニースの記事は、 https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/howに掲載されています。共有 - アンドロイド - アーカイブ - ライブラリー - オール - アロー
Aarファイルは単なる.Zip
で、代わりの拡張子と特定の内容が含まれています。詳細については、aarフォーマットについてのこのリンクをチェック してください 。
ユーザーhcplが言ったように、ライブラリのバージョンを気にしたくないのであれば、これを実行できます。
dependencies {
compile(name:'mylibrary', ext:'aar')
}
毎回バージョンを更新しなければならないのは厄介なことです。また、名前空間について心配しなくても済むようになります。
btw @aarには推移的な依存関係はありません。あなたはそれをオンにするためのパラメータが必要です。 gradleを使ってaarライブラリに対して推移的な依存関係が解決されていません
同じスレッドでのhcpl's answer に記載されている最初と2番目のステップをたどった後、私たちは、 '* .aar']、dir: 'libs'を追加しました。以下に示すように、Android-app-projectベースのgradle/app/build.gradleファイル。
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
私たちのgradleバージョンはcom.Android.tools.build:gradle:3.2.1です