2016-10-14 6 views
0

Androidの画像をCloudinaryにアップロードできません。なぜアップローダーになるとエラーが発生するのですか?どのメッセージも作成しないでください。メソッドは 'java.io.IOException'例外をスローしました。画像をアップロードできません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

あなたのエラー・スタックを投稿 –

+0

のみエラーがあなたの最後のtry catchブロックであり、その行があることを投げている画像 –

+0

をアップロードいけない、エラーを作るいけませんエラー –

答えて

0

アップロードコールではサーバー通信が必要です。 Androidでは、メイン(UI)スレッドでそのようなことは許可されません。 アップロードコールをAsyncTaskでラップすることができます。こうすることで、アップロード呼び出しはUIを妨害することなく、別のスレッドで行われます。

Aなどラップの(非常に)簡単な例 -

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 
    } 
} 
関連する問題