致命的异常AsyncTask#1 doInBackground()
我是Android的新手,我正在开发一个应用程序,从QR码获取一些信息,然后连接一个php页面。然而,应用程序在读取QR代码后会崩溃,并且logCat在运行时会给出致命异常AsyncTask#1。致命的异常AsyncTask#1 doInBackground()
这里是doInBackground()
代码:
class CreateNewProduct extends AsyncTask<String, String, String>
{
protected String doInBackground(String... args)
{
String tc= new String();
tc= "3123";
String no = new String();
no = "3";
/*String tcKimlik = "3123";
String hatNo = "3";*/
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tc", tc));
params.add(new BasicNameValuePair("no", no));
JSONObject json = jsonParser.makeHttpRequest(url_create_product, "POST", params);
try
{
int success = json.getInt(TAG_SUCCESS);
if (success == 1)
{
//qrCodeText.setText("DONE!");
}
else
{
//qrCodeText.setText("Nope...");
}
}
catch (JSONException e)
{
e.printStackTrace();
}
return null;
}
} // End of CreateNewProduct
CreateNewProduct
是另一个类读取QR码和我这样称呼它new CreateNewProduct().execute();
QR码被读取之后。
这里是logcat的:
UPDATE:
我加入http://
并提出setTexT()
的评论后,加入到logcat的JSON错误:
05-16 01:00:08.900: E/JSON Parser(11835): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
05-16 01:00:08.900: W/dalvikvm(11835): threadid=14: thread exiting with uncaught exception (group=0x410572a0)
05-16 01:00:08.910: E/AndroidRuntime(11835): FATAL EXCEPTION: AsyncTask #1
05-16 01:00:08.910: E/AndroidRuntime(11835): java.lang.RuntimeException: An error occured while executing doInBackground()
05-16 01:00:08.910: E/AndroidRuntime(11835): at android.os.AsyncTask$3.done(AsyncTask.java:299)
05-16 01:00:08.910: E/AndroidRuntime(11835): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
05-16 01:00:08.910: E/AndroidRuntime(11835): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
05-16 01:00:08.910: E/AndroidRuntime(11835): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
05-16 01:00:08.910: E/AndroidRuntime(11835): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-16 01:00:08.910: E/AndroidRuntime(11835): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-16 01:00:08.910: E/AndroidRuntime(11835): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-16 01:00:08.910: E/AndroidRuntime(11835): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-16 01:00:08.910: E/AndroidRuntime(11835): at java.lang.Thread.run(Thread.java:856)
05-16 01:00:08.910: E/AndroidRuntime(11835): Caused by: java.lang.NullPointerException
05-16 01:00:08.910: E/AndroidRuntime(11835): at com.example.yoritreader.MainActivity$CreateNewProduct.doInBackground(MainActivity.java:442)
05-16 01:00:08.910: E/AndroidRuntime(11835): at com.example.yoritreader.MainActivity$CreateNewProduct.doInBackground(MainActivity.java:1)
05-16 01:00:08.910: E/AndroidRuntime(11835): at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-16 01:00:08.910: E/AndroidRuntime(11835): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-16 01:00:08.910: E/AndroidRuntime(11835): ... 5 more
谢谢您的帮助!
错误已解决从php文件中删除<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
。
Target host must not be null, or set in parameters. scheme=null, host=null, path=www.halilcosgun.com/qrcode.php
您可能忘了将协议放在您网站的网址中。
我相信你目前的问题是,你需要添加"http://"
等,以你的url
当你发送请求。这应该照顾你目前的问题,IllegalStateException
。您的下一个问题将会试图从背景Thread
访问UI
元素。你需要搬家,你叫setText()
到onPostExecute()
或到Activity
方法
既然你不能从后台访问UI
元素此行
qrCodeText.setText("DONE!");
,并在那里你尝试任何其他行更新UI
会给你一个错误。您可以return success
至onPostExecute()
并按此方式执行,因为所有其他AsyncTask
方法都在UI
上运行。这是假设他们可以访问这些元素作为Activity
的内部类或在您的构造函数中传递对它们的引用
在添加“http://”并将“setText”作为注释之后,它将另外2行添加到LogCat中: E/JSON解析器(11835):解析数据时出错org.json.JSONException:Value ciyo
请不要更改您的OP ...它会对其他人会造成混淆和无用。如果您遇到类似于您原始问题的问题,可以添加它。如果它是一个单独的问题,那么你可以接受一个答案,帮助解决原始问题并发布一个新问题 – codeMagic
正如你可以从LogCat中看到的那样FATAL EXCEPTION:AsyncTask#1仍然没有解决。只有错误解析数据被添加到LogCat中,我无法得到解决问题的答案。 – ciyo
当我添加“http://”并将“setText”作为注释之后,它又向LogCat添加了2行: – ciyo
'解析数据时出错org.json.JSONException:值java.lang.String类型的 FilipPudak
我还使用名为'JSONParser'的类来获取'JSONObject'。错误可以在里面吗? – ciyo