クラスに機能を提供するためのベースとして機能する小さなライブラリを作成しました。ライブラリ内で新しいアクティビティを起動する必要がある場合がありますが、Android では常に Null Pointer Exception が返されます。ライブラリは新しいアクティビティを開始することを許可されていないのでしょうか、それとも何か間違っているのでしょうか?
Intent を送信するライブラリ ファイルの一部を次に示します。
videoIntent = new Intent(Interface.this, com.package.name.Video.class);
videoIntent.putExtra("bundle", bundle);
startActivity(videoIntent);
最後の行で Null Pointer Exception が発生します。
に置き換えてみましInterface.this
たgetApplicationContext()
が、NPE の場所がその行に変更されただけです。
私のパッケージ名は、ライブラリ プロジェクトのマニフェストとそれを利用するプロジェクトの両方で宣言されています。
LogCat:
09-22 17:19:16.485: E/AndroidRuntime(7378): FATAL EXCEPTION: main
09-22 17:19:16.485: E/AndroidRuntime(7378): java.lang.NullPointerException
09-22 17:19:16.485: E/AndroidRuntime(7378): at android.app.Activity.startActivityForResult(Activity.java:2858)
09-22 17:19:16.485: E/AndroidRuntime(7378): at android.app.Activity.startActivity(Activity.java:2964)
09-22 17:19:16.485: E/AndroidRuntime(7378): at com.spherical.adspire.Interface$3.onTouch(Interface.java:98)
09-22 17:19:16.485: E/AndroidRuntime(7378): at android.view.View.dispatchTouchEvent(View.java:3761)
09-22 17:19:16.485: E/AndroidRuntime(7378): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:871)
09-22 17:19:16.485: E/AndroidRuntime(7378): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:871)
09-22 17:19:16.485: E/AndroidRuntime(7378): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:871)
違いが生じる場合Interface
は、クラスを extends しActivity
、私のプロジェクト クラス extends Interface
.