AndroidのEclipseプロジェクトをAndroidStudioでデュアル開発したい


やりたいこと

  1. AndroidのEclipseプロジェクトを、そのまま環境をいじることなく、AndroidStudioで開発したい。
  2. ndk-build使用のNativeライブラリ(典型的には、上記プロジェクトに付随しているもの)をAndroidStudioのビルド環境に追加したい。

AndroidStudio 2.2.3、書いている時点で最新のコンパイル・ビルド環境を使用して説明しています。

AndroidStudioにインポートする

Eclipseで自動生成したものであれば、ルート直下に以下のbuild.gradleを落とし、AndroidStudioでインポートするだけです。環境に合わせて、適宜修正してください。

build.gradle
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
        androidTest.setRoot('tests')
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

Nativeライブラリプロジェクトも一緒にインポートする場合は、後半の操作で生成されるexternalNativeBuild設定を最初から記述してインポートして構いません。

ndk-build使用ライブラリを追加する

ProjectツールウィンドウのAndroidビューで、モジュール(上記ケースでは、兼モジュールのプロジェクト)を右クリッックし、コンテキストメニューから[Link C++ Project with Gradle]を選択します。

Build Systemのプルダウンメニューで[ndk-build]を選択し、Project PathでAndroid.mkを指定します。同じディレクトリにApplication.mkがあれば一緒に取り込んでくれます。(典型的にはjniディレクトリ直下に2つそろってあるはず。)

正常に取り込まれれば、External Build Files グループに表示されます。

build.gradleを開くと、externalNativeBuild設定が追記されています。

build.gradle
android {
    externalNativeBuild {
        ndkBuild {
            path 'jni/Android.mk'
        }
    }
}

環境更新時は都度Gradleのsync と Build>Refresh Linked C++ Projectsを実行して同期をとります。

Build> Analyze APK...でAPKを開いてみると、ちゃんとライブラリが取り込まれているのが確認できます。

詳細は、プロジェクトへの C / C++ コードの追加を参照してください。

参考までに、NDK Rev.10あたりまでバンドルされていたHelloJniサンプルをデュアル環境化したものをここに置いておきます。