私はこの質問に気づいています: 自分のgradle build にローカルの.aarファイルを追加しても解決策が得られません。
このステートメントをbuild.gradle
ファイルのトップレベルに追加してみました。
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
私はまた、slidingmenu.aar
ファイルを/libs
に入れて、それをdependencies
セクションで参照しました:compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
。
私はcompile files('libs/slidingmenu.aar')
も試しましたが、運は良かったです。
何が足りないの?何か案は?
P.S Android Studio 0.8.2
ヨシヤの答えをもとにして、私はそれをうまく動かしました。
彼の指示に従って(編集中)(ファイル - >新規 - >新規モジュール - >インポート.JAR/.AAR)、そしてあなたの.AARをインポートしてください。
それからあなたのプロジェクトのbuild.gradle(トップレベルのものではなく 'app'の下のもの)に以下を追加してください(依存関係セクションに):
dependencies {
compile project(':Name-Of-Your-Project')
}
注プロジェクトの名前は、AARファイルをインポートした後に追加されたフォルダーの名前と一致する必要があります(最上位フォルダーの下のapp/.idea
と同じレベルにあります)。または別の言い方をすれば...
MyApplication .idea app build.gradle(ここで、コンパイルプロジェクト( ':ProjectName')を依存関係セクションに追加する場所) ProjectName (インポート後に自動的に追加され、aarファイルの名前と一致します) build gradle etc
これはAndroid Studio 0.8.0を実行している私にとってはうまくいきました。これを行った後は、(ツールバーボタンを使用するか、File-> Synchronizeで)gradleを同期することを忘れないでください。
(私を正しい方向に導いてくれたJosiahに感謝します)
(注:これより前に、トップレベルのbuild.gradle
とアプリレベルのbuild.gradle
を操作しようとしてlibsフォルダーに追加してみましたが、どれも私のaarsファイルではうまくいきませんでした - jarファイルはうまくいきますが、aarファイルはうまくいきません)
更新:@ amram99が述べたように、 問題 はAndroid Studio v1のリリース時点で修正されています。 .3。
以下の仕様でテストおよび検証済み
今うまくいく
Android Studioで「ファイル」>「新規」>「新規モジュール」>「.JAR/.AARパッケージのインポート」オプションを選択して、ローカルのaarファイルをインポートできます。 v1.3
ただし、これはグラドルスクリプティングに基づいているため、以下の回答はAndroid Studioの変更に関係なく有効かつ有効です。
古い回答:最近の更新で、Androidの人々はAndroid Studioの[新しいモジュールの追加]メニューオプションを使ってローカルのaarファイルを含めることをやめました。ここにリストされている 問題 を確認してください。 IDEの機能リストに出入りするものに関係なく、以下の方法はローカルのaarファイルを扱う場合に有効です(今日のテスト)。
Aarファイルをlibsディレクトリに配置し(必要ならば作成します)、次にbuild.gradleに次のコードを追加します。
dependencies {
compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
}
repositories{
flatDir{
dirs 'libs'
}
}
編集:ビルド依存関係としてローカルのAARファイルを使う(現在の)正しい方法は、モジュールインポートウィザードを使うことです(File | New Module | Import)。プロジェクトのライブラリモジュールとして.aarを自動的に追加します。
古い答え
これを試して:
allprojects {
repositories {
jcenter()
flatDir {
dirs 'libs'
}
}
}
...
compile(name:'slidingmenu', ext:'aar')
私はこれをAndroid Studio 2.1で動かしました。私は複数のプロジェクトで共有されている "Native_Ads"というモジュールがあります。
まず、Native_adsモジュール内に 'aars'という名前のディレクトリを作成し、そこにaarファイルを置きます。
ディレクトリ構造:
libs/
aars/ <-- newly created
src/
build.gradle
etc
最上位Gradleファイル:
allprojects {
repositories {
jcenter()
// For module with aar file in it
flatDir {
dirs project(':Native_Ads').file('aars')
}
}
}
アプリモジュールのbuild.gradleファイル: - 変更なし
Settings.gradleファイル(モジュールを含めるため):
include ':app'
include 'Native_Ads'
project(':Native_Ads').projectDir = new File(rootProject.projectDir, '../path/to/Native_Ads')
Native_Adsモジュール用のGradleファイル:
repositories {
jcenter()
flatDir {
dirs 'aars'
}
}
dependencies {
compile(name:'aar_file_name_without_aar_extension', ext:'aar')
}
それでおしまい。きれいにして造ってください。
あなたはそれをこうすることができます。それはMavenフォーマットで行く必要があります:
repositories {
maven { url uri('folderName')}
}
そして、あなたのAARはグループID "com.example"のためのフォルダ構造に入る必要があります:
folderName/
com/
example/
verion/
myaar-version.aar
次に依存関係として参照します。
compile 'com.example:myaar:version@aar'
version
はあなたのaarファイルのバージョンです(すなわち3.0など)。
これが私の構造であり、これをどのように解決するのか。
MyProject/app/libs /mylib-1.0.0.aar
MyProject/app/myModulesFolder/myLibXYZ
Onbuild.gradle
fromProject/app/myModulesFolder/myLibXYZ
私はこれを入れました:
repositories {
flatDir {
dirs 'libs', '../../libs'
}
}
compile (name: 'mylib-1.0.0', ext: 'aar')
私のサブモジュールXYZはメインモジュールからのsomelibraryに依存しています。
私の場合、上記の答えはどれもうまくいきませんでした。私はrepositories{ flatDir{ dirs 'libs' } }
を追加するだけで、異なるproductFlavorsを持っていたので
動作しませんでした!私はlibsディレクトリの正確な位置を指定することになった:
repositories{
flatDir{
dirs 'src/main/libs'
}
}
build.gradleに異なるproductFlavorsがあるときは、このようにflatDirsを導入すべきだと思います
Android Studio 1.4の時点でこの問題を抱えている人のために、プロジェクト内に2つのことを含むモジュールを作成することによって機能するようになった。
次の内容のbuild.gradle:
configurations.create("default")
artifacts.add("default", file('facebook-Android-sdk-4.7.0.aar'))
aarファイル(この例では 'facebook-Android-sdk-4.7.0.aar')
それから新しいライブラリをモジュールの依存関係として含めます。これで、プロジェクト内のソースを含めずにビルド済みのAARを使用できます。
このハックのFacebookの功績による。私はAndroid SDKをプロジェクトに統合しながら解決策を見つけました。
私の場合は、aarファイルをlibsに入れて、
dependencies { ... api fileTree(dir: 'libs', include: ['*.aar']) ... }
build.gradleでそれは動作します。デフォルトで生成された依存関係と似ていると思います。
implementation fileTree(dir: 'libs', include: ['*.jar'])
アプリのgradleファイル実装プロジェクトに以下を追加します(パス: ':プロジェクト名')
この行には、aar
フォルダーのすべてのjar
およびlibs
ファイルが含まれます。
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/')