我正在尝试从我正在使用ListActivity的另一个项目中更改一个类,并且我投票将应用程序分段编译,这部分引发了错误:
05-06 21:58:16.928 26584-26676/com.learn2crack.tab E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
Process: com.learn2crack.tab, PID: 26584
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
at java.net.InetAddress.lookupHostByName(InetAddress.java:418)
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
at java.net.InetAddress.getAllByName(InetAddress.java:214)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
at com.learn2crack.tab.ServiceHandler.makeServiceCall(ServiceHandler.java:75)
at com.learn2crack.tab.ServiceHandler.makeServiceCall(ServiceHandler.java:39)
at com.learn2crack.tab.Android$GetContacts.doInBackground(Android.java:70)
at com.learn2crack.tab.Android$GetContacts.doInBackground(Android.java:51)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Class AsyncTask:
私有类GetContacts扩展了AsyncTask {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Espere, cargando datos...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Conseguir nodo matriz JSON
categories = jsonObj.getJSONArray(TAG_CONTACTS);
// bucle a través de todos las categorias
for (int i = 0; i < categories.length(); i++) {
JSONObject c = categories.getJSONObject(i);
String id = c.getString(TAG_ID);
String title = c.getString(TAG_title);
String slug = c.getString(TAG_slug);
String desc = c.getString(TAG_description);
// tmp hashmap para las ventanillas únicas
HashMap<String, String> contact = new HashMap<String, String>();
// adding each child node to HashMap key => value
contact.put(TAG_ID, id);
contact.put(TAG_title, title);
contact.put(TAG_slug, slug);
contact.put(TAG_description, desc);
// añadir categoria a la lista de categorias
contactList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "no pudo obtener ningún dato de la url");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
/**
* Actualización de datos analizados JSON en ListView
* */
ListView vista = (ListView) getActivity().findViewById(R.id.list);
ListAdapter adapter = new SimpleAdapter(
getActivity(), contactList,
R.layout.list_item, new String[]{TAG_title, TAG_description,
TAG_ID}, new int[]{R.id.name,
R.id.desc, R.id.id}
);
vista.setAdapter(adapter);
}
}
答案 0 :(得分:0)
您似乎没有相应的权限。将此行添加到manifest.xml
<uses-permission android:name="android.permission.INTERNET"></uses-permission>