Java Android JSON-AsyncTask DoInBackground空指针

Java Android JSON-AsyncTask DoInBackground空指针,java,android,json,Java,Android,Json,我正在开发一个简单的应用程序,它将POST数据发送到php脚本,然后获取JSON响应并将其放入listview。我的UI工作正常,我从脚本中得到一个JSON响应,但我的应用程序崩溃,调试日志只显示一个致命错误:main,只指向我的AsyncTask。我的JSON就是没有被正确解析吗 可能性一 步骤1积分@Weibo 将其移动到onCreate,doInBackground无法执行任何ui内容。这是异步任务的基本规则。如果必须,请将AsyncTask类移动到需要的活动中。确保不要将其设置为静态,因

我正在开发一个简单的应用程序,它将POST数据发送到php脚本,然后获取JSON响应并将其放入listview。我的UI工作正常,我从脚本中得到一个JSON响应,但我的应用程序崩溃,调试日志只显示一个
致命错误:main
,只指向我的AsyncTask。我的JSON就是没有被正确解析吗

可能性一 步骤1积分@Weibo

将其移动到onCreate,doInBackground无法执行任何ui内容。这是异步任务的基本规则。如果必须,请将AsyncTask类移动到需要的活动中。确保不要将其设置为静态,因为您需要onCreate的
findViewById

    final Spinner numPoke = (Spinner) findViewById(R.id.SpinnerNumPokemon);
    final Spinner dexRegion = (Spinner) findViewById(R.id.SpinnerRegion);
    final Spinner pokeType = (Spinner) findViewById(R.id.SpinnerType);
    final ToggleButton incNFE = (ToggleButton) findViewById(R.id.toggleNFE);
    final ToggleButton incLegendary = (ToggleButton) findViewById(R.id.toggleLegendary);
步骤2

在onPostExecute中,第一条语句应该

super.doPostExecute(result) ;
可能性二 您的
列表
口袋妖怪列表
,请检查此项。使用Toast的进行调试

忠告 请阅读Android的4个步骤

四个步骤 执行异步任务时,任务将经历4个步骤:

  • onPreExecute(),在执行任务之前在UI线程上调用。此步骤通常用于设置任务,例如在用户界面中显示进度条
  • doInBackground(Params…),在onPreExecute()完成执行后立即在后台线程上调用。此步骤用于执行可能需要很长时间的背景计算。异步任务的参数被传递到此步骤。此步骤必须返回计算结果,并将返回到最后一步。此步骤还可以使用publishProgress(进度…)发布一个或多个进度单元。这些值在UI线程的onProgressUpdate(Progress…)步骤中发布
  • onProgressUpdate(Progress…),在调用publishProgress(Progress…)后在UI线程上调用。执行的时间未定义。此方法用于在后台计算仍在执行时在用户界面中显示任何形式的进度。例如,它可以用于制作进度条动画或在文本字段中显示日志
  • onPostExecute(Result),在后台计算完成后在UI线程上调用。背景计算的结果作为参数传递到此步骤

  • 发布堆栈跟踪。如果要从
    doInBackground
    更新ui,请在
    onCreate
    中初始化视图,并使用
    runOnUiThread
    。请将视图初始化代码移到onCreate(视图)方法中。2.尝试测试服务器是否返回正确的json,您可以使用postman进行测试。[postman是一个chrome插件,您可以在chrome web store中找到并安装。]添加了我的堆栈跟踪。我试试你的建议。谢谢您的帮助:)@dsgunter发布您的适配器代码。谢谢,我尝试了您的建议,现在我收到了一个与onPostExecute相关的错误。。所以至少我现在有进展了!