這就是我的代碼。我會遇到很多錯誤。請幫助我,我是新來 編程的Java我得到這個錯誤:致命例外:AsyncTask#1
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
AsyncTask<String, Object, StringBuilder> listEmpresasTask = new AsyncTask<String, Object, StringBuilder>() {
@Override
protected StringBuilder doInBackground(String... params) {
StringBuilder stringBuilder = new StringBuilder();
try {
URL url = new URL("http://gsweb-tiagoseibel.rhcloud.com/empresas.json"); //exemplo de conex�o
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String linha;
while ((linha = br.readLine()) != null) {
stringBuilder.append(linha);
}
br.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder;
}
@Override
protected void onPostExecute(StringBuilder stringBuilder) {
super.onPostExecute(stringBuilder);
List<String> list = new ArrayList<String>();
try {
JSONArray marcas = new JSONArray(stringBuilder.toString());
for (int i = 0; i < marcas.length(); i++) {
String marcaID = marcas.optJSONObject(i).optString("id");
String marcaDesc = marcas.optJSONObject(i).optString("descricao");
list.add(marcaID + " - " + marcaDesc);
}
} catch (JSONException e) {
Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT);
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), "Lista de Cooperativas", Toast.LENGTH_LONG).show();
ArrayAdapter<String> ad = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item, list);
ListView lv = (ListView) findViewById(R.id.listView);
lv.setAdapter(ad);
}
};
listEmpresasTask.execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
錯誤:
12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: Process: com.example.anderson.myapplication, PID: 2114 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground() 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at android.os.AsyncTask$3.done(AsyncTask.java:309) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:242) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.lang.Thread.run(Thread.java:818) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.lookupHostByName(InetAddress.java:464) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.getAllByName(InetAddress.java:215) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:48) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:40) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at android.os.AsyncTask$2.call(AsyncTask.java:295) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.lang.Thread.run(Thread.java:818) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at libcore.io.Posix.android_getaddrinfo(Native Method) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.lookupHostByName(InetAddress.java:451) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.getAllByName(InetAddress.java:215) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:48) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:40) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at android.os.AsyncTask$2.call(AsyncTask.java:295) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.lang.Thread.run(Thread.java:818) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at libcore.io.Posix.android_getaddrinfo(Native Method) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.lookupHostByName(InetAddress.java:451) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.net.InetAddress.getAllByName(InetAddress.java:215) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:48) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:40) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at android.os.AsyncTask$2.call(AsyncTask.java:295) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at java.lang.Thread.run(Thread.java:818) 12-04 10:44:22.607 2114-2114/com.example.anderson.myapplication I/Choreographer: Skipped 38 frames! The application may be doing too much work on its main thread. 12-04 10:44:23.767 2114-2123/com.example.anderson.myapplication W/art: Suspending all threads took: 10.982ms 12-04 10:44:24.099 2114-2114/com.example.anderson.myapplication W/art: Long monitor contention event with owner method=void android.os.MessageQueue.nativeWake(long) from MessageQueue.java:4294967294 waiters=0 for 557ms 12-04 10:44:24.142 2114-2135/com.example.anderson.myapplication E/Surface: getSlotFromBufferLocked: unknown buffer: 0xab811e00 12-04 10:44:27.078 2114-2134/com.example.anderson.myapplication I/Process: Sending signal. PID: 2114 SIG: 9