2013-12-12 6 views
0

Я пытаюсь отправить одно изображение на моем локальном сервере от андроидаПростая загрузка изображений на простой локальный сервер от андроид эмулятор


  • Я попытался это здесь несколько дней назад, и с моей предыдущей Stackoverflow post here
  • Я был в состоянии получить работу
  • Сегодня, когда я повторить это я получаю ошибки снова

MainActivity.java

public class MainActivity extends Activity { 

    Button submit; 
    ProgressDialog pDialog; 
    InputStream is; 

    ImageView imageView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     submit = (Button) findViewById(R.id.SUBMIT_BUTTON_ID); 

     imageView = (ImageView) findViewById(R.id.imageView1); 

     submit.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       new MainTest().execute(); 


      } 
     }); 
    } 



    /** 
    * Method to post the image to the server. 
    * U will have to change the url which will accept the image data. 
    * @throws IOException 
    */ 
    public void postImageData() { 


     try 
     { 

     Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher); 

     HttpClient httpClient = new DefaultHttpClient(); 
     HttpPost postRequest = new HttpPost("http://10.0.2.2:7002/Details/"); 
     MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
     try{ 
      ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
      bitmapOrg.compress(CompressFormat.JPEG, 75, bos); 
      byte[] data = bos.toByteArray(); 
      ByteArrayBody bab = new ByteArrayBody(data, "forest.jpg"); 
      reqEntity.addPart("key", bab); 
     } 
     catch(Exception e){ 
      //Log.v("Exception in Image", ""+e); 
      reqEntity.addPart("picture", new StringBody("")); 
     } 
     postRequest.setEntity(reqEntity);  
     HttpResponse response = httpClient.execute(postRequest); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
     String sResponse; 
     StringBuilder s = new StringBuilder(); 
     while ((sResponse = reader.readLine()) != null) { 
      s = s.append(sResponse); 
     } 
    }catch(Exception e){ 
     e.getStackTrace(); 
    } 

















    } 
    public class MainTest extends AsyncTask<String, Integer, String> { 

     @Override 
     protected void onPreExecute() { 
      pDialog = new ProgressDialog(MainActivity.this); 
      pDialog.setMessage("Loading.."); 
      pDialog.setIndeterminate(true); 
      pDialog.setCancelable(false); 
      pDialog.show(); 
     } 

     @Override 
     protected String doInBackground(String... params) { 

      postImageData(); 

      return null; 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      // TODO Auto-generated method stub 

      super.onPostExecute(result); 
      // data=jobj.toString(); 
      pDialog.dismiss(); 

     } 

    } 

} 

Вход ::

12-12 13:55:30.430: E/dalvikvm(541): Could not find class 'org.apache.http.entity.mime.MultipartEntity', referenced from method com.example.datapostingproject.MainActivity.postImageData 
12-12 13:55:30.430: W/dalvikvm(541): VFY: unable to resolve new-instance 747 (Lorg/apache/http/entity/mime/MultipartEntity;) in Lcom/example/datapostingproject/MainActivity; 
12-12 13:55:30.440: D/dalvikvm(541): VFY: replacing opcode 0x22 at 0x0016 
12-12 13:55:30.440: D/dalvikvm(541): Making a copy of Lcom/example/datapostingproject/MainActivity;.postImageData code (297 bytes) 
12-12 13:55:30.650: D/dalvikvm(541): GC freed 565 objects/50640 bytes in 87ms 
12-12 13:55:30.871: D/dalvikvm(541): GC freed 45 objects/1728 bytes in 91ms 
12-12 13:55:55.350: W/dalvikvm(541): threadid=15: thread exiting with uncaught exception (group=0x4001b188) 
12-12 13:55:55.350: E/AndroidRuntime(541): Uncaught handler: thread AsyncTask #1 exiting due to uncaught exception 
12-12 13:55:55.850: E/AndroidRuntime(541): java.lang.RuntimeException: An error occured while executing doInBackground() 
12-12 13:55:55.850: E/AndroidRuntime(541): at android.os.AsyncTask$3.done(AsyncTask.java:200) 
12-12 13:55:55.850: E/AndroidRuntime(541): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
12-12 13:55:55.850: E/AndroidRuntime(541): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
12-12 13:55:55.850: E/AndroidRuntime(541): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
12-12 13:55:55.850: E/AndroidRuntime(541): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
12-12 13:55:55.850: E/AndroidRuntime(541): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
12-12 13:55:55.850: E/AndroidRuntime(541): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
12-12 13:55:55.850: E/AndroidRuntime(541): at java.lang.Thread.run(Thread.java:1096) 
12-12 13:55:55.850: E/AndroidRuntime(541): Caused by: java.lang.NoClassDefFoundError: org.apache.http.entity.mime.MultipartEntity 
12-12 13:55:55.850: E/AndroidRuntime(541): at com.example.datapostingproject.MainActivity.postImageData(MainActivity.java:99) 
12-12 13:55:55.850: E/AndroidRuntime(541): at com.example.datapostingproject.MainActivity$MainTest.doInBackground(MainActivity.java:154) 
12-12 13:55:55.850: E/AndroidRuntime(541): at com.example.datapostingproject.MainActivity$MainTest.doInBackground(MainActivity.java:1) 
12-12 13:55:55.850: E/AndroidRuntime(541): at android.os.AsyncTask$2.call(AsyncTask.java:185) 
12-12 13:55:55.850: E/AndroidRuntime(541): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
12-12 13:55:55.850: E/AndroidRuntime(541): ... 4 more 
12-12 13:55:56.010: I/dalvikvm(541): threadid=7: reacting to signal 3 
12-12 13:55:56.010: E/dalvikvm(541): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 

Примечание ::

Также я использовал файл Jar здесь

httpmime-4.2.3.jar ..... link

Кажется, я следовал за шагами правильно ..... но что плохого я здесь делаю

ответ

1

явно вызы-: java.lang.NoClassDefFoundError: org.apache.http.entity.mime.MultipartEntity

этот класс не доступен вам во время выполнения добавьте Mime jar в lib forlder и добавьте в свой путь сборки, это позволит решить эту проблему.

+0

True .......... На самом деле я добавил файл Jar из файла .... щелкните правой кнопкой мыши --- Добавьте jar --- .... но он не решил мою проблему, а затем скопировал jar-файл вручную в папку libs решил проблему ... спасибо – smriti3

1

Прежде всего удалить этот файл фляги:

И java.lang.NoClassDefFoundError: означает, что вы не правильно добавить файл фляги в свой проект. Так

После этого импорта, что банку файл:

Щелкните правой кнопкой мыши -> Свойства -> Java Build Path -> Добавить Внешние jar-> Применить -> Ok

А также добавить, что банку файл к вашему libs папка.

+0

На самом деле я добавил файл Jar из ... правой кнопкой мыши --- Добавить jar --- .... но он не решил мою проблему, а затем скопировал jar-файл вручную в папку libs решил проблему – smriti3

Смежные вопросы