بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ارور هنگام آپلود فایل
زمانی که برای آپلود فایل از کد زیر استفاده می کنم، در ورژن 2.3.7 اندروید فایل آپلود میشه اما زمانی که در ورژن 4.1.1 اجرا می کنم با ارور مواجه میشم
public void uploadImage(String url, String selectedPath) {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
File f = new File(selectedPath);
if (f.exists())
{
builder.addTextBody("key", "vahid");
builder.addBinaryBody("uploaded_file", f);
HttpEntity entity = builder.build();
//
post.setEntity(entity);
try {
HttpResponse response = client.execute(post); //خط ارور
HttpEntity entity1 = response.getEntity();
}
catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
logCat
11-11 07:20:33.032: E/AndroidRuntime(2033): FATAL EXCEPTION: main
11-11 07:20:33.032: E/AndroidRuntime(2033): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null,
request=2, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.uncocoder/com.uncocoder.myapp.ImageChooser}:
android.os.NetworkOnMainThreadException
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.app.ActivityThread.deliverResults(ActivityThread.java:3141)
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3184)
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.app.ActivityThread.access$1100(ActivityThread.java:130)
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1243)
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.os.Handler.dispatchMessage(Handler.java:99)
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.os.Looper.loop(Looper.java:137)
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.app.ActivityThread.main(ActivityThread.java:4745)
11-11 07:20:33.032: E/AndroidRuntime(2033): at java.lang.reflect.Method.invokeNative(Native Method)
11-11 07:20:33.032: E/AndroidRuntime(2033): at java.lang.reflect.Method.invoke(Method.java:511)
11-11 07:20:33.032: E/AndroidRuntime(2033): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-11 07:20:33.032: E/AndroidRuntime(2033): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-11 07:20:33.032: E/AndroidRuntime(2033): at dalvik.system.NativeStart.main(Native Method)
11-11 07:20:33.032: E/AndroidRuntime(2033): Caused by: android.os.NetworkOnMainThreadException
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
11-11 07:20:33.032: E/AndroidRuntime(2033): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
11-11 07:20:33.032: E/AndroidRuntime(2033): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
11-11 07:20:33.032: E/AndroidRuntime(2033): at libcore.io.IoBridge.connect(IoBridge.java:112)
11-11 07:20:33.032: E/AndroidRuntime(2033): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
11-11 07:20:33.032: E/AndroidRuntime(2033): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
11-11 07:20:33.032: E/AndroidRuntime(2033): at java.net.Socket.connect(Socket.java:842)
11-11 07:20:33.032: E/AndroidRuntime(2033): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
11-11 07:20:33.032: E/AndroidRuntime(2033): at org.apache.http.impl.conn.DefaultClientConnectionOperator.
openConnection(DefaultClientConnectionOperator.java:144)
11-11 07:20:33.032: E/AndroidRuntime(2033): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
11-11 07:20:33.032: E/AndroidRuntime(2033): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
11-11 07:20:33.032: E/AndroidRuntime(2033): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
11-11 07:20:33.032: E/AndroidRuntime(2033): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-11 07:20:33.032: E/AndroidRuntime(2033): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11-11 07:20:33.032: E/AndroidRuntime(2033): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11-11 07:20:33.032: E/AndroidRuntime(2033): at com.uncocoder.myapp.ImageChooser.uploadImage(ImageChooser.java:285)
11-11 07:20:33.032: E/AndroidRuntime(2033): at com.uncocoder.myapp.ImageChooser.onActivityResult(ImageChooser.java:160)
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.app.Activity.dispatchActivityResult(Activity.java:5192)
11-11 07:20:33.032: E/AndroidRuntime(2033): at android.app.ActivityThread.deliverResults(ActivityThread.java:3137)
11-11 07:20:33.032: E/AndroidRuntime(2033): ... 11 more
+1
0
جستجو کنید در انجمن "NetworkOnMainThreadException" (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
سپهر
11 سال پیش
+1
0
مشکلم با اضافه کردن این دو خط به onCreate حل شد
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .