Android StudioでAARファイルを作成する


173

Android Studioでライブラリ用のaarファイルを作成したいのですが、jarオプションを使用したのですが、ライブラリにリソースがあります。

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

回答:


225

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

[ファイル]> [新しいモジュール]で「Androidライブラリ」タイプを選択して、新しいAndroidライブラリを作成できます。


3
バージョン管理は、実際にはAAR自体の外部にあります。通常は、バージョン情報を含むMaven pomファイルを設定します。
スコットバルタ2015

1
ライブラリのlibsフォルダーにaarファイルがあるので、直接build / outputs /
aar

4
プロジェクトレベルの/ build /フォルダーではなく、app / build / outputs / aar /にaarファイルが表示されました!見つからない場合に備えて
peresisUser

29
を生成するにはaarBuild > Rebuild ProjectAndroid Studioでを実行する必要があったことに注意してください。単に実行、デバッグ、またはAPKをビルドするだけでは生成さaarれませんでした。
アダムジョンズ

8
@AdamJohnsは./gradlew moduleName:assembleRelease、ターミナルタブでのより速い方法
Sameer J

158

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

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ファイルを参照する

アプリプロジェクト.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にあります。

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

これらの.aarファイルを組織内で共有する必要がある場合は、mavenをチェックしてください。このトピックに関するすばらしい記事は、次の場所にあります。 https //web.archive.org/web/20141002122437/http //blog.glassdiary.com/post/67134169807/how-to-share-android-archive-にあります。ライブラリーaar-across

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

aarファイルは.zip、代替の拡張子と特定のコンテンツを持つ単なるです。詳細については、aar形式に関するこのリンクを確認してください。


11
素晴らしく詳細な答え。+1 for- gradlew assemble私が抱えていた問題を解決しました。
Farbod Salamat-Zadeh 2016

@hcpl Androidプロジェクトを.aarファイルに変換する方法
Ana

1
@NaveedAhmadは./gradlewを試しましたか
hcpl

@NaveedAhmadすると、おそらく間違った場所から実行されているか、gradle設定が異なります。「locdle gradlew」を試すこともできますが、実際にgradlewを見つけて実行するのに問題がある場合は、この簡単な答えは役に立ちません
hcpl

後世用:プロジェクトのトップレベルディレクトリにgradlewあるスクリプトです。
CodeClown42

11

ユーザーhcplが言ったように、ライブラリのバージョンについて心配したくない場合は、これを行うことができます:

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

毎回バージョンを更新しなければならないのはちょっと面倒です。また、名前空間を気にする必要がなくなります。


5

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


3

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」という名前のフォルダが作成されます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.