2016-10-14 3 views
0

Ich kann kein Bild von Android auf Cloudinary hochladen, ich weiß nicht warum, Fehler beim Versuch, Uploader. Machen Sie keine Nachricht. Die Methode hat die Ausnahme 'java.io.IOException' ausgelöst.Bild kann nicht hochgeladen werden Cloudinary - Android

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

if(resultCode == RESULT_OK){ 
    Bitmap imageBitmap = (Bitmap) extras.get("data"); 
      Uri uri = getImageUri(getApplicationContext(), imageBitmap); 
      InputStream in = null;  
      try { 
       in = getContentResolver().openInputStream(uri); 
      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } 
      Map config = new HashMap(); 
      config.put("cloud_name", "..."); 
      config.put("api_key", "..."); 
      config.put("api_secret", "..."); 
      Cloudinary mobileCloudinary = new Cloudinary(config);  
      try { 
       mobileCloudinary.uploader().upload(in, ObjectUtils.asMap("public_id", "sample_remote")); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
} 
+0

Ihre Fehler-Stack schreiben –

+0

Fehler machen nicht, nicht nur laden Sie das Bild –

+0

der Fehler in Ihrem letzten Versuch catch-Block ist, dass Linie wirft, dass Fehler –

Antwort

0

Der Upload-Aufruf erfordert Serverkommunikation. Android lässt das nicht auf dem Hauptthread zu. Sie können versuchen, den Upload-Anruf mit einer AsyncTask zu umbrechen. Auf diese Weise findet der Upload-Aufruf in einem anderen Thread statt, der die Benutzeroberfläche nicht stört.

A (sehr) einfaches Beispiel einer solchen Packung -

class CloudinaryUpload extends AsyncTask<String, String, String> { 


    protected String doInBackground(String... urls) { 
     try{ 
      Map imageResult = cloudinary.uploader().upload("file", ObjectUtils.emptyMap()); 

     }catch (IOException e){ 
      System.out.println(e.getMessage()); 
     } 
    } 

    protected void onPostExecute(String url) { 
      //do something with imageResult 
    } 
} 
Verwandte Themen