Android
AndroidStudio

Android Studioで *.jar, *.soを追加する

More than 3 years have passed since last update.

Android Studio 1.0 (以下AS)がリリースされた。と同時に eclipse ADT pluginのフェードアウトも発表されたため、今後の開発は ASに軸足を移していく必要がある。

一応 eclipseからのプロジェクトのインポート機能も用意されてはいるが、eclipseで安定して開発できているものを今から変更するのはあまり意味が無い気がするし、そもそも依存関係のあるプロジェクトの移行には弱いという印象がある。新しいプロジェクトだけ ASで開発していけば自分の作業環境としては問題がない。

今回は OCRライブラリの評価を進めるため、eclipseで作ったライブラリ(jar, so)を ASで再利用するための方法を調べた。

参考したのは http://tondol.hatenablog.jp/entry/20130521/1369111104 。ただ開発中バージョンに基づいた記事のため、現在では通じない記述があった。


手順


jar, soの用意

まず eclipseで作った tess-two, eyes-twoの jarファイルと共有ライブラリをひとまとめにした。必須の作業ではないが、色々なプロジェクトで使い回したいため。


  • 共有ライブラリ(*.so)は jniLibsに

  • jarは libsに

それぞれまとめておくといい。

fig0.png


プロジェクトを作る

ASを立ち上げて新規プロジェクトを作る。Wizardの質問には適当に答えて空の MainActivityが作られればいい。

fig2.png


ライブラリ(*.jar)の追加

先ほどまとめておいたjarを libsの下へ Copy & Pasteする。 Drag & Dropするとコピーでなく移動してしまうので注意。

fig3.png

tess-two.jarに対して右クリック → Add as Libraryを行う。なんでかよく分からないが libsに入っている他のjarも同時に処理されるっぽい。

fig4.png

次に appの build.gradleを編集する。


build.gradle編集前

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
compile files('libs/tess-two.jar')
}

compileの3行目が必要ない。2つ上の行の記述だけで充分。


build.gradle編集後

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
}

これで jarファイルはプロジェクトに組み込まれた。


共有ライブラリ (*.so)の追加

共有ライブラリは app/src/main/jniLibsディレクトリを作り、そこに各プラットフォームのディレクトリと共有ライブラリを置いていく。

fig5.png

こちらはファイルを置くだけで設定することはない。ライブラリの置き場所は変更可能 (参照 : http://vividcode.hatenablog.com/entry/android-app/gradle-jnilibs)


実験: OCR

先日作った OCRのテストプロジェクトを ASで作りなおしてみた。

https://github.com/Nunocky/OCRTest01

fig6.png

Jolly good.