1. ホーム
  2. android

[解決済み] Gradle for Androidを使用して、外部のaarパッケージを手動でインクルードする方法

2022-03-20 21:46:44

質問

新しいアンドロイドビルドシステムで実験しているのですが、小さな問題に遭遇しました。 ActionBarSherlockのaarパッケージをコンパイルし、'actionbarsherlock.aar'と名付けました。 私がやろうとしていることは、実際にこのaarを使って最終的なAPKをビルドすることです。 もし私がActionBarSherlockライブラリ全体をandroid-libraryモジュールとして私のメインプロジェクトにcompile project (':actionbarsherlock')を使って含めると、何の問題もなく正常にビルドすることができます。

しかし、私の問題は、私がJARのように手動でaarファイルパッケージとしてその依存性を提供したいのですが、私のプロジェクトにそれを適切に含める方法を見つけ出すことができないようです。 私は、コンパイル設定を使用しようとしましたが、これはうまくいかないようです。 コンパイル中に cannot find symbol と表示されて、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"
}

EDIT: つまり、現在サポートされていないという答えです、以下がその例です。 問題 をご覧ください。

EDIT: 現在、これはまだ直接サポートされていないため、最善の代替案は @RanWakshlak が提案するソリューションのようです。

EDIT: また、@VipulShah が提案する構文を使用すると、よりシンプルになります。

どのように解決するのですか?

以下の手順で動作させることができます(Android Studio 2.2まででテストしています)。

libsフォルダにaarファイルを保存しているとします。(ファイル名は cards.aar )

では、アプリで build.gradle を指定し、プロジェクトとGradleファイルの同期をクリックします。 プロジェクトレベルのbuild.gradleを開き、以下の項目を追加します。 flatDir{dirs 'libs'} 以下のように

allprojects {
   repositories {
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

を追加し、アプリレベルの build.grdle ファイルを開きます。 .aar ファイル

    dependencies {
       implementation(name:'cards', ext:'aar')
}

うまくいけば、build -> exploded-aarにライブラリのエントリが作成されていることがわかります。

また、他のプロジェクトから依存関係のある .aar ファイルをインポートする場合は、build.gradle にこれらのファイルも含める必要があることに注意してください。