Http请求不';t工作java(在Android应用程序上)
现在差不多一个月了,我仍然在努力通过android应用程序发送一个简单的请求。尝试了几种方法,但都失败了。希望你们能看到我看不到的错误。应用程序启动时崩溃 下面是我最后一次尝试的代码:Http请求不';t工作java(在Android应用程序上),java,android,httprequest,Java,Android,Httprequest,现在差不多一个月了,我仍然在努力通过android应用程序发送一个简单的请求。尝试了几种方法,但都失败了。希望你们能看到我看不到的错误。应用程序启动时崩溃 下面是我最后一次尝试的代码: public class MainActivity extends Activity { Handler handler2; String result=""; @Override protected void onCreate(Bundle savedInstanceState) { super.o
public class MainActivity extends Activity {
Handler handler2;
String result="";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyThread mt= new MyThread();
mt.start();
}
private class MyThread extends Thread{
@Override
public void run() {
Toast.makeText(MainActivity.this,"thread created",Toast.LENGTH_LONG).show();
URL url = null;
try {
url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
result = readStream(in);
Toast.makeText(MainActivity.this,"success",Toast.LENGTH_LONG).show();
} finally {
urlConnection.disconnect();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
handler2.post(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,result,Toast.LENGTH_LONG).show();
}
});
}
然后是logcat:
12-19 13:59:24.989 18412 18412 E AndroidRuntime Process: com.system.alt, PID: 18412
12-19 13:59:24.989 18412 18412 E AndroidRuntime java.lang.RuntimeException: Unable to start activity ComponentInfo{com.system.alt/com.system.alt.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
12-19 13:59:24.989 18412 18412 E AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
我认为开始一个新的线程有问题。有人能帮忙吗?我被卡住了(尝试扩展
AppCompatActivity
而不是Activity
...
public class MainActivity extends AppCompatActivity{
...
MainActivity的第35行是什么?根据日志,这就是错误的来源。此外,我认为您不能直接从另一个线程显示toast或更新任何其他ui元素,请选中此选项,即使用async task,它为您提供了一种访问ui线程的简便方法。实际上,我刷新了构建并发现了这些错误gs.Updated.Btw,注释掉Toasts,仍然崩溃。请注意,错误消息与HTTP请求无关。事实上,Android还没有执行足够多的代码来实现这一点。如果你搜索错误消息,你会发现许多显示如何解决它的链接,包括我添加到你问题顶部的链接。