481

新しい Android ビルド システムを試していたところ、小さな問題が発生しました。「actionbarsherlock.aar」と呼ばれる ActionBarSherlock の独自の aar パッケージをコンパイルしました。私がやろうとしているのは、実際にこの aar を使用して最終的な APK を構築することです。コンパイル プロジェクト (':actionbarsherlock') を使用して、ActionBarSherlock ライブラリ全体を android-library モジュールとしてメイン プロジェクトに含めると、問題なく正常にビルドできます。

しかし、私の問題は、その依存関係を aar ファイル パッケージとして手動で提供したいということです。JAR を使用する場合、プロジェクトに適切に含める方法がわかりません。コンパイル構成を使用しようとしましたが、うまくいかないようです。aar パッケージの classes.jar がクラスパスに含まれていないことがわかります。

aar パッケージをファイルとして手動で含める構文を知っている人はいますか?

build.gradle

buildscript {

 repositories {
     mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.4'
  }
}
apply plugin: 'android'

repositories {
   mavenCentral()
}
dependencies {
    compile files('libs/actionbarsherlock.aar')
}

android {
    compileSdkVersion 15
    buildToolsVersion "17.0"
}

編集:したがって、答えは現在サポートされていないということです。追跡したい場合は、ここに問題があります。

編集:現在、これはまだ直接サポートされていないため、最良の代替手段は@RanWakshlakから提案されたソリューションのようです

EDIT:@VipulShahによって提案された構文を使用することで、さらに簡単になります

4

25 に答える 25

268
  1. プロジェクトを右クリックし、[モジュール設定を開く]を選択します。

モジュール設定を開く

  1. ウィンドウの左上隅にある「+」ボタンをクリックして、新しいモジュールを追加します。

新しいモジュールを追加

  1. 「.JAR または .AAR パッケージのインポート」を選択し、「次へ」ボタンをクリックします。

AAR のインポート

  1. [ファイル名] フィールドの横にある省略記号ボタン [ ... ] を使用して AAR ファイルを検索します。

AAR ファイルを探す

  1. アプリのモジュールを選択したままにして、[依存関係]ペインをクリックして、新しいモジュールを依存関係として追加します。

依存関係ペイン

  1. 依存関係画面の「+」ボタンを使用して、「モジュールの依存関係」を選択します。

モジュールの依存関係を追加

  1. モジュールを選択し、「OK」をクリックします。

モジュールを選択

編集:スクリーンショット 6 のモジュール依存関係は、Android Studio 4.1 で削除されました。別の方法として、モジュールの依存関係をbuild.gradleに追加します。

dependencies {
    implementation project(':your_module')
}

編集: Android Studio 4.2 では、ユーザー インターフェイスとワークフローが大幅に変更されました。依存関係を追加するプロセスは、公式ドキュメントで非常によく説明されています:プロジェクト構造ダイアログで依存関係を追加する

于 2016-01-21T09:28:43.340 に答える
54

以下のアプローチは、Android Studio v0.8.x で機能します。

  • aarファイルをアプリ モジュールのlibsフォルダー (例: <project>/<app>/libs/myaar.aar)の下に保存します。

  • 「アプリ」モジュール フォルダーの build.gradle に以下を追加します (プロジェクト ルートの build.gradle ではありません)。コンパイル行の名前に注意してください。myaar.aar ではなく、myaar@aar です。

     dependencies {
         compile 'package.name.of.your.aar:myaar@aar'
     }
    
     repositories{
         flatDir{
             dirs 'libs'
         }
     }
    
  • クリックTools -> Android -> Sync Project with Gradle Files

于 2014-10-07T03:28:11.883 に答える
28

Android Studio 3.4 と Gradle 5 を使用すると、次のように簡単に実行できます。

dependencies {
    implementation files('libs/actionbarsherlock.aar')
}
于 2019-05-21T15:35:12.600 に答える
21

私はちょうど成功しました!

  1. mylib-0.1.aarファイルをlibs/フォルダーにコピーします。

  2. これらの行をbuild.gradleの最後に追加します(プロジェクトではなくアプリにする必要があります)。

    repositories {
       flatDir {
           dirs 'libs'
       }
    }
    dependencies {
        compile 'com.example.lib:mylib:0.1@aar'
    }
    
  3. ここまでは順調ですね。最も重要なポイントは次のとおりです。

オフライン モードが有効になっていない限り、Gradle は依存関係のためにネットワークにアクセスする必要があります。

Project Structures/GradleのチェックボックスでOffline workが有効になっていることを確認してください。

- また -

ネットワークにアクセスするためにプロキシ設定を構成します。

プロキシ設定を構成するには、プロジェクトのgradle.propertiesファイルを変更し、以下のように http と https を別々に構成する必要があります。

systemProp.http.proxyHost=proxy.example.com
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=user
systemProp.http.proxyPassword=pass
systemProp.http.nonProxyHosts=localhost
systemProp.http.auth.ntlm.domain=example <for NT auth>

systemProp.https.proxyHost=proxy.example.com
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=user
systemProp.https.proxyPassword=pass
systemProp.https.nonProxyHosts=localhost
systemProp.https.auth.ntlm.domain=example <for NT auth>

これがうまくいくことを願っています。

于 2015-03-02T14:32:59.050 に答える
7

私もこの問題を抱えていました。この問題レポート: https://code.google.com/p/android/issues/detail?id=55863は、.AAR ファイルの直接参照がサポートされていないことを示唆しているようです。

おそらく、現時点では、actionbarsherlock ライブラリをプロジェクトの親ディレクトリの下の Gradle ライブラリとして定義し、それに応じて参照することもできます。

構文はここで定義されていますhttp://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Referencing-a-Library

于 2013-05-29T23:07:34.407 に答える
7

Android Studio Arctic Fox で AAR ファイルを手動でインポートするには

ステップ 1. プロジェクト構造を開く
ここに画像の説明を入力

ステップ 2. プロジェクト構造を開く
ここに画像の説明を入力

ステップ 3. ファイルパスを入力してください
ここに画像の説明を入力

終わり!

于 2021-09-09T14:57:03.787 に答える
3

Android イシュー トラッカーでこの回避策を見つけました: https://code.google.com/p/android/issues/detail?id=55863#c21

トリック (修正ではありません) は、.aar ファイルをサブプロジェクトに分離し、ライブラリをアーティファクトとして追加することです。

configurations.create("default")
artifacts.add("default", file('somelib.jar'))
artifacts.add("default", file('someaar.aar'))

詳細: Handling-transitive-dependencies-for-local-artifacts-jars-and-aar

于 2014-04-14T15:26:02.930 に答える
-1

私の場合、「プロジェクト」を追加してコンパイルするとうまくいきます:

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}


dependencies {
   compile project('com.x.x:x:1.0.0')
}
于 2018-04-20T20:21:19.253 に答える