Excite Smartphone Engineer's Blog

2012年 12月 13日

Jarじゃないソースしか無い、Androidのライブラリーをプロジェクト内に組み込む

こんにちは。

GitHubには多くのAndroidのライブラリーが公開されていますが、
その多くがJarファイルでは無く、プロジェクトがそのままUPされています。
Jarファイルの場合、libsの直下に入れればいいのですが、ソースコードそのままの場合上手く行きません。
しかも、Resourceファイル等が入っているとそれを一緒にJar化は出来ないです。

// ↓参考 --------------------------------------------------------
以下のアプリから実装例を基に探すことも出来ます。
便利なアプリなので是非見てみて下さい。
https://play.google.com/store/apps/details?id=com.groidify.uipatterns
// -----------------------------------------------------------------

プロジェクト外の場合、SVN等で管理した場合他のエンジニアの開発環境にも同様に同じバージョンのものを参照できていることが必要になり、社内で使おうとすると管理に問題があります。
なので、プロジェクト内に参照するソースコードを埋め込んでしまいましょう。





さてさて、今回は例としてActionBarSherlockという3.x系から導入されたActionBarを2.xでも使う事ができるライブラリーをプロジェクト内に組み込んでみたいと思います。
ActionBarはAndroid標準としてGoogleが推奨してるUIですが、2.x系では使えないので、
ほとんどのユーザがAndroid 4.x系になるまで、このライブラリーには度々お世話になるはずです。

プロジェクト外の場合、以下が非常に参考になります。

Android 2.xでAction Barが使えるActionBarSherlockの使い方

ActionBarSherlockからソースコードをDLしてきます。(今回は現在の最新版v4.1.0を使用します)

解凍すると下図の様になります。

e0291676_15301340.png


この中のlibraryがActionBarSherlockの本体になります。
Eclipseでプロジェクトを作ります。今回は「EmbedActionBarSherlock」というプロジェクト名にします。
プロジェクト直下にActionBarSherlockを置くlibraryというディレクトリを作っておきます。

e0291676_15333098.png


libraryの下にActionBarSherlockの本体をおきます。

e0291676_1534467.png


ActionBarのlibraryを「actionbar」とリネームしておきましょう。
次に、参照するためにActionBarSherlockをプロジェクト内に作成します。

Eclipseの
「File > New > Other > Android > Android Project from Existing Code」を選択

e0291676_1550857.png


そして、先程コピーした「EmbedActionBarSherlock > library > actionbar 」を選択

e0291676_1552396.jpg


そうすると、Eclipseプロジェクトとして、「actionbar」が作られます。
(※エラーが出る場合はプロジェクトクリーンして下さい。)
その後、EmbedActionBarSherlockのプロパティを開き、Androidのところの
Libraryとしてactionbarを追加します。

e0291676_15534493.png


これで完了です。



Found 2 versions of android-support-v4.jar in the dependency list,〜というエラーが出た場合は、
サポートライブラリのバージョンが異なっているので、actionbarプロジェクトで
「右クリック > Android Tools > Add Support Libray」で最新のに更新し、クリーンします。




SVNからチェックアウトしてきて、参照しているライブラリを同様にプロジェクトを作る必要があります。
使っているlibsのようにサクッとはできないみたいですが 、使っているライブラリー(バージョンが同じもの)をWEBから探してきて組み込む手間を考えるといいかもしれません。

以上、 まえだでした。

by sp_tech | 2012-12-13 15:51 | Android | Comments(0)


<< Android端末のrootを...      アプリ内でApp Storeが... >>