我在android设备上构建代码时出错。这是错误报告
致命异常:AsyncTask#1进程:com。实例冈图,PID:1248爪哇。lang.RuntimeException:在android上执行doInBackground()时出错。操作系统。异步任务3美元。在java上完成(AsyncTask.java:304)。util。同时发生的未来任务。在java完成(FutureTask.java:355)。util。同时发生的未来任务。java上的setException(FutureTask.java:222)。util。同时发生的未来任务。在android上运行(FutureTask.java:242)。操作系统。AsyncTask$SerialExecutor$1。在java上运行(AsyncTask.java:231)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1112)。util。同时发生的ThreadPoolExecutor$工作者。在java上运行(ThreadPoolExecutor.java:587)。lang.Thread。运行(Thread.java:818)由:java引起。lang.NullPointerException:尝试调用虚拟方法“org”。json。JSONArray组织。json。JSONObject。com上的空对象引用上的getJSONArray(java.lang.String)“”。实例冈图。列出$DownloadJSON。com上的doInBackground(List.java:74)。实例冈图。列出$DownloadJSON。android上的doInBackground(List.java:49)。操作系统。异步任务2美元。在java上调用(AsyncTask.java:292)。util。同时发生的未来任务。在android上运行(FutureTask.java:237)。操作系统。AsyncTask$SerialExecutor$1。运行(AsyncTask.java:231)
这是我的密码
private class DownloadJSON extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Create a progressdialog
mProgressDialog = new ProgressDialog(List.this);
// Set progressdialog title
mProgressDialog.setTitle("Android JSON Parse Tutorial");
// Set progressdialog message
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
// Show progressdialog
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
// Create an array
arraylist = new ArrayList<HashMap<String, String>>();
// Retrieve JSON Objects from the given URL address
jsonobject = JSONFunction
.getJSONfromURL("http://localhost/atm_db/json/json.php");
try {
// Locate the array name in JSON
jsonarray = jsonobject.getJSONArray("");
for (int i = 0; i < jsonarray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
jsonobject = jsonarray.getJSONObject(i);
// Retrive JSON Objects
map.put("nama_atm", jsonobject.getString("nama_atm"));
map.put("alamat", jsonobject.getString("alamat"));
map.put("latitude", jsonobject.getString("latitude"));
map.put("longtitude", jsonobject.getString("longtitude"));
// Set the JSON Objects into the array
arraylist.add(map);
}
} catch (JSONException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
用以下代码替换DownloadJSON:
public class DownloadJSON extends AsyncTask<String ,Integer , JSONObject> {
DownloadJSON(){
// Create an array
arraylist = new ArrayList<HashMap<String, String>>();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
// Create a progressdialog
mProgressDialog = new ProgressDialog(List.this);
// Set progressdialog title
mProgressDialog.setTitle("Android JSON Parse Tutorial");
// Set progressdialog message
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
// Show progressdialog
mProgressDialog.show();
}
@Override
protected JSONObject doInBackground(String... params) {
// Retrieve JSON Objects from the given URL address
jsonobject = JSONFunction.getJSONfromURL("http://localhost/atm_db/json/json.php");
return jsonobject;
}
@Override
protected void onPostExecute(JSONObject s) {
super.onPostExecute(s);
try {
// Locate the array name in JSON
jsonarray = jsonobject.getJSONArray("PUT KEY OF JSON HERE");
for (int i = 0; i < jsonarray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
jsonobject = jsonarray.getJSONObject(i);
// Retrive JSON Objects
map.put("nama_atm", jsonobject.getString("nama_atm"));
map.put("alamat", jsonobject.getString("alamat"));
map.put("latitude", jsonobject.getString("latitude"));
map.put("longtitude", jsonobject.getString("longtitude"));
// Set the JSON Objects into the array
arraylist.add(map);
}
} catch (JSONException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
}
注:
1.在从doInbackground()返回jsonObject之前,请确保您从您提到的URL接收到有效的jsonObject。
2.从jsonobject获取jsonArray时,请使用数组的键。
看起来jsonobject.getJSONArray("");
正在抛出错误,因为jsonject为null。
您需要再次检查您是否正在获取数据,如果是,还需要检查JSON数据的格式。
我做了一个应用程序登录,一切都是正常的昨天,但今天android工作室给了我这个错误 {08-03 14:29:07.894 137 03-14015/Complete.Lyne.MyApplication E/AndroidRuntime:致命异常:AsyncTask#1进程:Complete.Lyne.MyApplication,PID:13703 java.lang.RuntimeExcep
我在android设备上构建代码时出错了。这是错误报告 05-17 09:47:16.035 17982-18134/com . example . ckw . mapku E/Android runtime:致命异常:async task # 1 05-17 09:47:16.035 17982-18134/com . example . mapku E/Android runtime:Proc
早上好StackOver Flow Pros, 我需要一点帮助。我正在运行一个Android应用程序,该应用程序通过php脚本调用MySql数据库,当我运行该应用程序时,我得到一个由空指针异常导致的AsyncTask #1的致命异常错误。它说是在执行doInBackground时发生的。这是我从MyBringBack跟随的一个教程。我真的需要好好想想这件事,因为我已经想了好几天了。如果我删除/注释
活动: 类 updateTwitterStatus extends AsyncTask { 这就是 LogCat 06-05 18:00:26.696: E/AndroidRuntime(1516): 致命异常: AsyncTask #2 06-05 18:00:26.696: E/AndroidRuntime(1516): java.lang.RuntimeException: 执行 doInB
我在mainActivity(log.d(“create response”,json.toString())的第275行得到一个带有NullPointerException的致命异常我以前引用了该对象为JSONObject json=new JSONObject();我仍然得到空指针。我的原木猫在下面。 日志猫: