2012-04-25 27 views
1

スプラッシュ画面が1000ミリ秒間表示されると、「アプリケーションが予期せず停止しました。もう一度お試しください」というエラーが表示されます。スプラッシュ画面の後に開始するはずのアクティビティが動作していないようです。スプラッシュ画面の前に、すべて正常に動作しました。 Logcat は、次のエラーを表示します。 "E/AndroidRuntime(5480):java.lang.RuntimeException:アクティビティを開始できませんでしたComponentInfo {com.xxxxx.home/com.xxxxx.home.xxxxx}:java.lang.NullPointerException。問題は、私のスプラッシュクラスであるが、任意の洞察力をいただければ幸いです。ポイントをピンすることはできません。スプラッシュ画面後のアクティビティ

パブリッククラススプラッシュ{

private final int SPLASH_DISPLAY_LENGTH = 1000; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash); 


    new Handler().postDelayed(new Runnable(){ 
     @Override 
     public void run() { 

      Intent openxxxxx = new Intent("com.xxxxx.home.XXXXX"); 
      startActivity(openxxxxx); 

     } 
    }, SPLASH_DISPLAY_LENGTH); 
} 

}ここで

+2

あなたはすべてのアクティビティクラスをmanifeastファイルに登録していますか? – MAC

+0

はい...私のスプラッシュアクティビティはマニフェストに登録され、MAINとLAUNCHERに設定されています。私の2番目の活動はDEFAULTに変更され、名前は "意図"のものと同じに設定されました – user1165694

答えて

3

は、あなたがこれを使用することができ、完全なコードでの活動を拡張します、

package com.fsp.slideview; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.Window; 

public class ImageSplashActivity extends Activity { 
    /** 
    * The thread to process splash screen events 
    */ 
    private Thread mSplashThread; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.splash); 

     final ImageSplashActivity sPlashScreen = this; 

     mSplashThread = new Thread() { 
      @Override 
      public void run() { 
       try { 
        synchronized (this) { 
         wait(2000); 
        } 
       } catch (InterruptedException ex) { 
       } 

       finish(); 
       Intent intent = new Intent(); 
       intent.setClass(sPlashScreen, SlideMainActivity.class); 
       startActivity(intent); 
      } 
     }; 

     mSplashThread.start(); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent evt) { 
     if (evt.getAction() == MotionEvent.ACTION_DOWN) { 
      synchronized (mSplashThread) { 
       mSplashThread.notifyAll(); 
      } 
     } 
     return true; 
    } 
} 
+0

これは叙事詩です。素晴らしいコード。治療をしました。ありがとう@Aerrow – BENN1TH

+0

私はSlideMainActivityを推測することは、ビューにアニメーションスライドですか? – BENN1TH

+0

申し訳ありませんが、現時点では来ていますが、誰でもJavaのデスクトップアプリケーションのスプラッシュスクリーンの後にアプリケーションを実行する方法を知っていますか? –