Androidプロジェクトにjarを作って読み込んでみた

jarを作って別プロジェクトに読み込むまでは、色々と参考にさせていただいて
すっと出来たわけですが、読み込んでからヌルポ、ヌルポして動かなかった。

ごにょごにょしてたら動いたんだけど、忘れないように、メモメモ。

Eclipse Version: Kepler Release (日本語)で作成。


まずは、JARとなるAndroidプロジェクトの作成。

JARとなるAndroidプロジェクトの作成

  1. パッケージ・エクスプローラーで右クリック
  2. 新規→Androidアプリケーション→アプリケーション名など適当に入れて「次へ」
  3. カスタム・ランチャー・アイコンを作成するからチェックをはずすアクティビティの作成からチェックをはずすこのプロシェクトをラブラリとしてマークするにチェクを入れる f:id:isopan:20140616215432j:plain
  4. プロジェクトが作成できたらAndroidManifest.xmlのアプリケーションタブのDefine..のチェックをはずすf:id:isopan:20140616215711j:plain

以上で設定はOK。

で、クラスを作成し処理を書いたらエクスポート

JARを読み込み側のプロジェクトの設定

  1. パッケージ・エクスプローラーのプロジェクト名上で右クリック
  2. Java→JARファイルを選んで「次へ」
  3. 必要なファイルを選びJARファイル名を入力したら「完了」(自分はこのとき、.classpath .project AndroidManifest.xml proguard-project.xml project.propertiesのファイルとresディレクトリはチェックを外しました。)
  4. JARが出来上がったら、読み込みたいプロジェクトのlibsディレクトリにJARを移動
  5. パッケージ・エクスプローラーの読み込みたいプロジェクトで右クリック→プロパティ
  6. Javaのビルド・パスを選択
  7. Jar追加で先ほどのJAR選択→「OK」

これで読み込みまでOKなので、実際のプロジェクトで呼び出して使える!

とここまでなら何らハマらなかったんだけど、、、
SharedPreferencesとintentが動かない!
あ、context渡さないとだめなんだ!と気づくまで2時間位どっぷりヌルポに浸かって疲れた。。。

//ライブラリ側 JARをcontextを引数で渡してもらうよう変更
public class JarTest {
    public static void JarTest001(Context context) {
    //SharedPreferencesを使ったところ
        context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
    //intentを使ったところ
        context.startActivity(intent);
    }
}
//読み込みたいプロジェクト側
JarTest.JarTest001(getApplicationContext());

こんな感じで動いた!