بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ارور هنگام آپلود فایل 

مدیریت گفتگو
سپهر 11 سال پیش
آخرین تغییر: 11 سال پیش

زمانی که برای آپلود فایل از کد زیر استفاده می کنم، در ورژن 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

نظرات

Spirit 11 سال پیش
جستجو کنید در انجمن "NetworkOnMainThreadException"

پاسخ‌ها 1

سپهر 11 سال پیش

مشکلم با اضافه کردن این دو خط به onCreate حل شد

 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

نظرات

Hossein Kurd 11 سال پیش
من توی IntelliJ Idea نیازی به این و خط ندارم ولی توی eclipse نیاز می شه

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .