Android startActivity()导致nullpointerexception

Android startActivity()导致nullpointerexception,android,android-intent,nullpointerexception,Android,Android Intent,Nullpointerexception,当startActivity被调用时,我一直得到一个NPE,我认为这与我为意图提供的上下文有关。当我从互联网上获取xml数据时,我正试图让启动屏幕保持不动。splash活动创建一个sbplXmlData对象,该对象启动一个异步任务。onPostExecute()是所谓的startActivity()。谢谢你的帮助 public class SbplSplash extends Activity { String now_playing, earned; ArrayList<String&g

当startActivity被调用时,我一直得到一个NPE,我认为这与我为意图提供的上下文有关。当我从互联网上获取xml数据时,我正试图让启动屏幕保持不动。splash活动创建一个sbplXmlData对象,该对象启动一个异步任务。onPostExecute()是所谓的startActivity()。谢谢你的帮助

public class SbplSplash extends Activity {
String now_playing, earned;
ArrayList<String> gameIdsList;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash_layout);

    /**
     * Showing splashscreen while making network calls to download necessary
     * data before launching the app Will use AsyncTask to make http call
     */

    /* Invoke Xml Parser and database creator/population */
    gameIdsList = new ArrayList<String>();
    SbplXmlData xmlDataObj = new SbplXmlData(gameIdsList);
    gameIdsList = xmlDataObj.getGameId();

}


}

如果希望SbplXmlData成为活动,则不能通过实例化它的新对象来启动它。你必须使用意图

是否确实希望SbplXmlData是一个活动而不仅仅是一个对象?(即跳过“扩展活动”)

编辑:


只需将AsyncTask作为SbplSplash的子类,并将loadPage()作为所述活动的成员函数。

如果希望SbplXmlData成为活动,则不能通过实例化它的新对象来启动它。你必须使用意图

是否确实希望SbplXmlData是一个活动而不仅仅是一个对象?(即跳过“扩展活动”)

编辑:


只需将AsyncTask设置为SbplSplash的子类,并将loadPage()设置为上述活动的成员函数。

是否可以发布异常的日志?是否可以发布StatTrace?为什么在此处使用AsyncTask上下文。您可以使用当前活动上下文(即SbplXmlData.this)来启动活动。请发布异常的日志?请发布StatTrace?为什么在此处使用Asynctask上下文。您可以使用当前活动上下文(即SbplXmlData.this)启动activity.Correct。除此之外,
SbplXmlData
类中也没有
getGameId
函数。我删除了与post shorterThanks无关的函数。这个建议奏效了。我刚刚去掉了SbplXmlData的活动,然后在SbplSplash上下文中传递给SbplXmlData对象。Correct。除此之外,
SbplXmlData
类中也没有
getGameId
函数。我删除了与post shorterThanks无关的函数。这个建议奏效了。我刚刚去掉了SbplXmlData的活动,然后在SbplSplash上下文中传递给SbplXmlData对象。
public class SbplXmlData extends Activity {

    SbplXmlData(ArrayList<String> gameIdsList) {
            this.gameIdsList = gameIdsList;
            loadPage();
    }
         public Context getContext() {
        return this;
    }
    // Uses AsyncTask to download the XML feed 
    public void loadPage() {
            /* assume we have a connection for now */
        wifiConnected = true;

        if ((wifiConnected || mobileConnected)) {
            new DownloadXmlTask(this).execute(URL);
        } else {
            Log.e(TAG, "Unable to downlaod from URL");
            // show error
        }
    }

    // Implementation of AsyncTask used to download XML feed from nfl.com.
    private class DownloadXmlTask extends AsyncTask<String, Void, String> {
        Context context;
        DownloadXmlTask(Context context) {
            this.context = context;
        }
        @Override
        protected String doInBackground(String... urls) {
            try {
                return loadXmlFromNetwork(urls[0]);
            } catch (IOException e) {
                return getResources().getString(R.string.connection_error);
            } catch (XmlPullParserException e) {
                return getResources().getString(R.string.xml_error);
            }
        }

        @Override
        protected void onPostExecute(String result) {
            // do something to indicate success
            super.onPostExecute(result);

            // will close this activity and launch main activity
            Intent i = new Intent(context, LiveViewActivity.class);
            //i.putStringArrayListExtra("list", gameIdsList);

            startActivity(i);

        }
    }
10-04 14:47:14.242: I/SbplXmlData(32559): 14
10-04 14:47:14.242: D/OpenGLRenderer(32559): Enabling debug mode 0 
10-04 14:47:14.242: D/AndroidRuntime(32559): Shutting down VM
10-04 14:47:14.242: W/dalvikvm(32559): threadid=1: thread exiting with uncaught exception (group=0x42021ac8)
10-04 14:47:14.252: E/AndroidRuntime(32559): FATAL EXCEPTION: main
10-04 14:47:14.252: E/AndroidRuntime(32559): java.lang.NullPointerException
10-04 14:47:14.252: E/AndroidRuntime(32559):    at    android.app.Activity.startActivityForResult(Activity.java:3430)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.app.Activity.startActivityForResult(Activity.java:3391)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.app.Activity.startActivity(Activity.java:3626)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.app.Activity.startActivity(Activity.java:3594)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at com.jbrewsapps.sbpl.SbplXmlData$DownloadXmlTask.onPostExecute(SbplXmlData.java:103)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at com.jbrewsapps.sbpl.SbplXmlData$DownloadXmlTask.onPostExecute(SbplXmlData.java:1)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.os.AsyncTask.finish(AsyncTask.java:631)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.os.AsyncTask.access$600(AsyncTask.java:177)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.os.Handler.dispatchMessage(Handler.java:99)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.os.Looper.loop(Looper.java:137)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at android.app.ActivityThread.main(ActivityThread.java:5328)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at java.lang.reflect.Method.invokeNative(Native Method)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at java.lang.reflect.Method.invoke(Method.java:511)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
10-04 14:47:14.252: E/AndroidRuntime(32559):    at dalvik.system.NativeStart.main(Native Method)
10-04 14:47:14.282: I/Process(32559): Sending signal. PID: 32559 SIG: 9