gpt4 book ai didi

安卓应用程序崩溃(http GET)

转载 作者:行者123 更新时间:2023-12-03 16:53:09 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How can I fix 'android.os.NetworkOnMainThreadException'?

(65 个回答)


7年前关闭。




当我运行 get 函数并且我找不到解决方案时,我的应用程序总是崩溃:

07-09 12:49:45.613: E/AndroidRuntime(1395): FATAL EXCEPTION: main
07-09 12:49:45.613: E/AndroidRuntime(1395): java.lang.IllegalStateException: Could not execute method of the activity
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.view.View$1.onClick(View.java:3724)
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.view.View.performClick(View.java:4261)
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.view.View$PerformClick.run(View.java:17356)
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.os.Handler.handleCallback(Handler.java:615)
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.os.Handler.dispatchMessage(Handler.java:92)
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.os.Looper.loop(Looper.java:137)
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.app.ActivityThread.main(ActivityThread.java:4921)
07-09 12:49:45.613: E/AndroidRuntime(1395): at java.lang.reflect.Method.invokeNative(Native Method)
07-09 12:49:45.613: E/AndroidRuntime(1395): at java.lang.reflect.Method.invoke(Method.java:511)
07-09 12:49:45.613: E/AndroidRuntime(1395): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
07-09 12:49:45.613: E/AndroidRuntime(1395): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
07-09 12:49:45.613: E/AndroidRuntime(1395): at dalvik.system.NativeStart.main(Native Method)
07-09 12:49:45.613: E/AndroidRuntime(1395): Caused by: java.lang.reflect.InvocationTargetException
07-09 12:49:45.613: E/AndroidRuntime(1395): at java.lang.reflect.Method.invokeNative(Native Method)
07-09 12:49:45.613: E/AndroidRuntime(1395): at java.lang.reflect.Method.invoke(Method.java:511)
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.view.View$1.onClick(View.java:3719)
07-09 12:49:45.613: E/AndroidRuntime(1395): ... 11 more
07-09 12:49:45.613: E/AndroidRuntime(1395): Caused by: android.os.NetworkOnMainThreadException
07-09 12:49:45.613: E/AndroidRuntime(1395): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
07-09 12:49:45.613: E/AndroidRuntime(1395): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
07-09 12:49:45.613: E/AndroidRuntime(1395): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
07-09 12:49:45.613: E/AndroidRuntime(1395): at java.net.InetAddress.getAllByName(InetAddress.java:214)
07-09 12:49:45.613: E/AndroidRuntime(1395): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
07-09 12:49:45.613: E/AndroidRuntime(1395): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
07-09 12:49:45.613: E/AndroidRuntime(1395): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
07-09 12:49:45.613: E/AndroidRuntime(1395): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
07-09 12:49:45.613: E/AndroidRuntime(1395): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
07-09 12:49:45.613: E/AndroidRuntime(1395): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
07-09 12:49:45.613: E/AndroidRuntime(1395): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-09 12:49:45.613: E/AndroidRuntime(1395): at de.xx.XX.postData(xx.java:315)
07-09 12:49:45.613: E/AndroidRuntime(1395): at de.xx.XX.send_msg(xx.java:301)
07-09 12:49:45.613: E/AndroidRuntime(1395): ... 14 more

我的 http 获取 Android Java 代码:
public void postData() {

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://www.xxxx.com/mobile/xxx/save.php?text=sdf");

// replace with your url
HttpResponse response;
try {
response = client.execute(request);

Log.d("Response of GET request", response.toString());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

我希望你能帮助我,我为我糟糕的英语道歉。为什么我们要在这里写这么多的文字,我不知道该写什么。

最佳答案

尝试:类名扩展异步类,让你的所有 http 调用,doInBackground 方法

android 4.0 以上所有 https 调用只允许在异步线程中使用

试试这个链接以获得更好的解释:AsyncTask Android example

关于安卓应用程序崩溃(http GET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24651936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com