質問

私はサービスで、プログラムを作成している - サービスは「START_STICKY」です。だから、呼び出ししようとしたとき、私はエラーを取得するので、私はプログラム(私はプログラムを殺すために、高度なタスクキラーを使用しています)サービスが自動的に再起動されますが、このプレゼントの問題を閉じるときます:

ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203) (see stacktrace below).

私はそれがnullでない場合、私の活動のコンテキストを返しますハンドルコンテキストにクラス、またはアクティビティのコンテキストがnullの場合、私が作成した偽の1作成した - と、偽の1が使用されているので、アクティビティのコンテキストがnullを、私は、これが問題になることが疑われるが、見当がつかない。 私の活動では、私はcontexthandlingクラスにそれ自身の参照を与えるコンストラクタを持っているが、活動は、システムが私のサービスを再起動したとき(サービスは、少なくとも開始されない前に)インスタンス化されていないようです。

プログラムだけで正常に開始された問題は、もちろんありませんが、サービスは、罰金を開始します。私は偽のコンテキストを疑っています理由である、私は次のようにそれを作成した(そしてそれがandroid:name=FakeContextとアプリケーションマニフェストタグで参照される):

public class FakeContext extends android.app.Application 
{
   private static FakeContext m_instance = null;

   public FakeContext()
   {
   }

   public static synchronized Context getContext()
   {
      if(m_instance == null)
      {
         m_instance = new FakeContext();
      }

      return m_instance;
   }
}

スタックトレースます:

11-18 19:12:14.048: ERROR/AndroidRuntime(15655): FATAL EXCEPTION: main
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): java.lang.RuntimeException: Unable to create service sdo.GeoTracker.Services.DataService: java.lang.NullPointerException
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.app.ActivityThread.handleCreateService(ActivityThread.java:3140)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.app.ActivityThread.access$3300(ActivityThread.java:135)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2202)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.os.Handler.dispatchMessage(Handler.java:99)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.os.Looper.loop(Looper.java:144)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.app.ActivityThread.main(ActivityThread.java:4937)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at java.lang.reflect.Method.invokeNative(Native Method)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at java.lang.reflect.Method.invoke(Method.java:521)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at dalvik.system.NativeStart.main(Native Method)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): Caused by: java.lang.NullPointerException
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at sdo.GeoTracker.DataAccess.SqlAdapter.<init>(SqlAdapter.java:51)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at sdo.GeoTracker.DataAccess.SqlAdapter.getInstance(SqlAdapter.java:61)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at sdo.GeoTracker.Services.DataService.startService(DataService.java:65)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at sdo.GeoTracker.Services.DataService.onCreate(DataService.java:40)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): at android.app.ActivityThread.handleCreateService(ActivityThread.java:3125)
11-18 19:12:14.048: ERROR/AndroidRuntime(15655): ... 10 more

はすべてのヘルプは大歓迎です! - 私はそれを綴るてください、アンドロイドの開発に初心者です。

役に立ちましたか?

解決

はApplicationクラスは、Androidフレームワークの一部である、あなただけのコンストラクタなどでそれを作成することはできません。代わりに「偽」1を使用するのでは、あなたのアプリケーションのApplicationオブジェクトを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top