LoginSignup
14
14

More than 5 years have passed since last update.

EclipseでのAndroid開発で、ライブラリの管理をGradleに任せる

Posted at

Android アプリを Eclipse で開発する場合、使用するサードパーティーのライブラリ(jar)は、 libs フォルダの下に配置しなければならない。

しかし、 Gradle の dependencies に依存関係を追加しただけでは、 jar は libs の下には配置されない。
つまり、 Eclipse からはライブラリが参照できず、実装ができない。

そこで、依存ライブラリの jar を libs の下にコピーするタスクを追加することで対応する。

build.gradle を修正する

プロジェクトを右クリックして、「エクスポート」→「Android」→「Generate Gradle build files」を選択し、画面の指示に従って build.gradle を出力。

以下の要領で build.gradleを修正する。

修正前
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}
修正後
repositories {
    mavenCentral()
}

dependencies {
    compile files('libs/android-support-v4.jar')
    compile 'org.roboguice:roboguice:2.0'
}

task copyLibs(type : Copy) {
    configurations.compile.each {
        from it.toString()
        into 'libs'
        exclude {
            new File('libs', it.name).exists()
        }
    }
}

copyLibs タスクは、 compile で指定している依存ライブラリを libs の下にコピーする。
ただし、既に libs の下に配置されているライブラリについてはコピー対象外にしている。

また、自動生成された build.gradle では、 libs フォルダ直下の全ての jar を参照するように dependencies が設定されている。
これをそのままにしていると、追加した依存関係と copyLibs タスクで配置した jar が重複してしまい気持ち悪い。
なので、デフォルトの記述は削除し、最初から配置されている android-support-v4.jar だけを参照するように変更している。

あとは、依存関係を追加したら、都度 copyLibs タスクを実行すればいい。

参考

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14