web-dev-qa-db-ja.com

Android Studioでaarファイルを作成します

私はAndroid Studioで私のライブラリ用のaarファイルを作りたいのですが、私はjarオプションで行っていたでしょうが、私のライブラリにはリソースがあります。

ライブラリからAARファイルを作成する方法はありますか。

149

ライブラリがAndroidライブラリとして設定されている場合(つまり、build.gradleファイルでapply plugin: 'com.Android.library'ステートメントを使用している場合)、ビルド時に.aarを出力します。それはに表示されます ビルド/出力/ aar / モジュールのディレクトリ内のディレクトリ。

File> New Moduleで "Android Library"タイプを選択して新しいAndroidライブラリを作成することができます。

195
Scott Barta

ローカルビルドからエクスポートされた.aarファイルを取得する

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ファイル

アプリプロジェクトでは、この.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 - アンドロイド - プロジェクト

Mavenを使って依存関係を共有する

組織内でこれらの.aarファイルを共有する必要がある場合は、mavenをチェックしてください。このトピックに関するニースの記事は、 https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/howに掲載されています。共有 - アンドロイド - アーカイブ - ライブラリー - オール - アロー

.aarファイル形式について

Aarファイルは単なる.Zipで、代わりの拡張子と特定の内容が含まれています。詳細については、aarフォーマットについてのこのリンクをチェック してください

145
hcpl

ユーザーhcplが言ったように、ライブラリのバージョンを気にしたくないのであれば、これを実行できます。

dependencies {
    compile(name:'mylibrary', ext:'aar')
}

毎回バージョンを更新しなければならないのは厄介なことです。また、名前空間について心配しなくても済むようになります。

10
j2emanue

btw @aarには推移的な依存関係はありません。あなたはそれをオンにするためのパラメータが必要です。 gradleを使ってaarライブラリに対して推移的な依存関係が解決されていません

2
cn123h

同じスレッドでの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です

1
Dhananjay M