1

スプラッシュ画面が 1000 ミリ秒表示されると、「アプリケーションが予期せず停止しました。もう一度やり直してください」というエラーが表示されます。スプラッシュ スクリーンが機能しない後に開始されるはずのアクティビティのようです。スプラッシュ画面の前は、すべて正常に機能していました。Logcat に次のエラーが表示される " E/AndroidRuntime(5480): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxxx.home/com.xxxxx.home.xxxxx}: java.lang.NullPointerException. I beleive the issue私のスプラッシュクラスと一緒ですが、どこを特定することはできません.どんな洞察も大歓迎です.

public class Splash extends Activity{

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);
}

}

4

1 に答える 1

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;
    }
}
于 2012-04-25T18:30:44.093 に答える