آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

سپهر  11 سال پیش  11 سال پیش
+2 0

زمانی که برای آپلود فایل از کد زیر استفاده می کنم، در ورژن 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);
+1 0
من توی IntelliJ Idea نیازی به این و خط ندارم ولی توی eclipse نیاز می شه (11 سال پیش)

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