Android StudioでリリースAndroidライブラリパッケージ(aar)を作成する方法(デバッグではありません)


81

Androidライブラリパッケージ(aar)をビルドしました。ビルドの結果は、「.. \ app \ build \ outputs \ aar」フォルダーに作成されます。このフォルダー内のファイルは「app-debug.aar」と呼ばれているので、デバッグモードでビルドされていると思います。ビルドされたリリース、つまり「app-release.aar」を生成する方法を知りたいと思います。これどうやってするの?また、「app-release.aar」の代わりに「myCustomAppName-release.aar」などの別のカスタム名でビルドを生成することもできますか?



2
この問題の解決策を見つけましたか?私は同じ問題を抱えており、それに関する助けを見つけることができません。
Belurd 2015年

回答:


120

Android Studio 1.2以降にはgradle、利用可能gradleなすべてのタスクを一覧表示する完全なメニューがあります。

このメニューは、デフォルトのオプションが有効になっているIDEの右側にあります。

GradleメニューはデフォルトでIDEの右側にあります...

目的のタスクを右クリックして、[実行]をクリックします。

必要なタスクを右クリックして[実行]をクリックします


1
これは私にとってはうまくいきますが、ここで別の答えのコメントでuser1624552によって提案されたcmd line gradeコマンドを実行すると、標準の「ビルド」メニューからのビルドも機能し始めたことに気付きました。コマンドライングレードを実行していない人が、このサイドグラドルメニューアプローチが機能することを確認できれば便利です。コマンドラインが実行される前に、私の場合は新しいバージョンのgradleのように見えるものをダウンロードしたので、それも疑問に思います。必須の手順です。
ミック

1
ところで、これを見つけてよくやった!!! Googleの誰かがこれを見ている場合は、トップのビルドメニュー、この「新しい」Gradleサイドメニュー、ビルドバリアントビューなどをリンク/合理化/説明する計画があるかどうかを知っておくと便利です。
ミック

ええ、間違いなく。そのメニューが見つかるまで、他の回答が示唆していたように、私もコマンドラインからgradleを実行しました。サイドメニューを使用する前に、コマンドラインから実行する必要があるかどうかはわかりません...サイドグラドルメニューから実行するタスクがデフォルトのアクション「実行」アクションになることも興味深いです。つまり、緑色の矢印アイコンと[実行]メニューは、最後に実行されたgradleタスクを指しています。便利:)
jiminikiz 2015

たった1つの質問ですが、リリースモードでaarファイルをエクスポートすると、最新のプロガードプロパティが含まれますか?
abh22ishek 2015年

1
はい、assembleタスクを実行すると、プロジェクトで定義したprogaurdルールが適用されます。
jiminikiz 2015

10

AS 2.3.3でこの問題に直面し、モジュールのビルドバリアントをリリースに変更して再度ビルドすることで解決しました。

ここに画像の説明を入力してください


9

この問題は、executeなどの回答ですでに処理できます

./gradlew assembleRelease

または、AndroidStudioのGradleメニューからassembleReleaseを選択します。ただし、完全を期すために、Android Studio 1.5.1(およびおそらく古いバージョン)では、AndroidStudioで[ビルド]-> [APKのビルド]選択することで、.aarのリリースバージョンをビルドできます。assembleReleaseを実行しているようです。プロジェクトにライブラリプロジェクトのみが含まれている場合、署名情報は要求されません。


8

1.build.gradleのandroid {}タグに次のスクリプトを追加して、リリースビルドを生成します。

signingConfigs {
    testConfig{
        storeFile file("X:/XXXX/yourkeystore")
        storePassword "yourKeyPassword"
        keyAlias "yourAlias"
        keyPassword "yourAliasPassword"
    }
}

buildTypes{
    release {
        signingConfig  signingConfigs.testConfig
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

2.コマンドラインでコマンド「gradlecleanbuild」を実行します。


申し訳ありませんが、私はAndroid開発の初心者です。リリース出力を取得するには、Androidライブラリパッケージ(aar)に署名する必要がありますか?どうすれば自分のキーストアを生成できますか?
ラルフ

私のライブラリプロジェクトでは、\ build \ outputs \ aarはすでに生成されています:XX-debug.aar、XX-release.aar。そして、なぜ.arrファイルを必要としたのですか?ライブラリを使用する場合は、build.gradleに次のスクリプトを追加するだけです。dependencies{compile project( ':YourLibraryProject')}
codezjx 2014

1
将来、Androidアプリ内でこのライブラリを使用したいと思います。これはライブラリであり、リリース出力を取得したいのですが、理由はわかりませんが、ライブラリの「\ app \ build \ outputs \ aar」フォルダーにあるXX-release.aarではなくXX-debug.aarのみを取得しています。
ラルフ

5
ターミナルウィンドウから、プロジェクトフォルダーに移動したら、「。/gradlewclean」と「./gradlewaR」のコマンドを実行すると、「XX-release.aar」が「.. \ app \ build \」に生成されます。 output \ aar "フォルダー。Android Studioから同じことを行うにはどうすればよいですか?つまり、AndroidStudioにリリースもアセンブルするように指示します。
ラルフ

1
通常、Android Studioでプロジェクトをビルドするだけですが、いくつかのアプリで同じ問題が発生します。したがって、ターミナルでそれを行うことが唯一の解決策です。
CodyMace 2015年

8

Android Studio 3.0を使用すると、aarファイルを簡単に生成できます。Gradleオプションから、図に示すようにオプションをチェックします ここに画像の説明を入力してください


私のプロジェクトでは、リリースオプションをアセンブルすることができません。
Gyan SwaroopAwasthi20年

私は、プロジェクト内のlib .aar私のリリースをインポートするとき、それはのようなエラーが上がり、「AAPTを:エラー:属性...が見つかりません」@leeCoder
聖武天皇

4

コマンドラインを使用できます

./gradlew <moduleName>:assemble

./gradlew <moduleName>:assemble<build_variant>
//for example
./gradlew <moduleName>:assembleRelease

//or
./gradlew <moduleName>:bundle<build_variant>Aar
//for example
./gradlew <moduleName>:bundleReleaseAar
//output is located
<project_path>/build/outputs/aar/<module_name>-<build_variant>.aar

または、AndroidStudioUIを使用することもできます

View -> Tool Windows -> Gradle
<module_name> -> Tasks -> build or others -> assembleRelease


違いは何である./gradlew <moduleName>:assemble<build_variant>とは ./gradlew <moduleName>:bundle<build_variant>Aar
rupesh

3

Androidのライブラリとしてプロジェクトを設定し
build.gradleファイル: plugin: 'com.android.library'
:あなたがして出力を見ることができますbuild/outputs/aar/[your module].
。また、この参照リンクを


3

誰も2番目の部分に答えないさらに別の2つの部分の質問...

将来の世代のために、ここに簡単な答えがあります:

パート1リリースのみを作成する方法は*release.aar

android studio terminal(またはプロジェクトフォルダー内の任意のターミナル)で実行します。:

./gradlew assembleRelease

そのようなタスクのために設定に署名する必要はありません。

パート2出力ライブラリの名前をAnotherLibraryName-release.aar?に変更する方法

モジュールに追加gradle.build

android{
    project.archivesBaseName = "AnotherLibraryName"
}

0

私にとっては、コンパイルエラーを生成しなかった(androidxプラグインがない)ライブラリのレイアウトバグを修正するだけで修正され<lib>-release.aar<lib>-debug.aarinbuild/outputs/aar/フォルダーの横に表示されました。

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