2013-10-11 43 views
0

我想将图像发布到twitter。因此,我使用Twitter代码,通过使用该代码完成了身份验证。我发布图片到twitter.But它不是发布到twitter.I有图像像网址:http://www.myappdemo.net/AackAack/aacks/20131011015732.jpg。 我正在使用波纹管代码在认证后发布图像。要在twitter上发布图片,获取错误:打开失败:ENOENT(没有这样的文件或目录)

class PostTwittTask extends AsyncTask<String, Void, String> { 
    ProgressDialog pDialog; 

    @Override 
    protected void onPreExecute() { 

     dialog=MyProgressDialog.show(activity1, null,null); 
     super.onPreExecute(); 
    } 

    @Override 
    protected String doInBackground(String... twitt) { 
     try { 

      Log.e("post image",MessageShareActivity.aackurl); 


    File file=fileCache.getFile(MessageShareActivity.aackurl); 

      mTwitter.uploadPic(file, twitt[0]); 
      return "success"; 

     } catch (Exception e) { 
      if (e.getMessage().toString().contains("duplicate")) { 
       return "Posting Failed because of Duplicate message..."; 
      } 
      e.printStackTrace(); 
      return "Posting Failed!!!"; 
     } 

    } 

    @Override 
    protected void onPostExecute(String result) { 
     dialog.dismiss(); 

     if (null != result && result.equals("success")) { 

      alertMessage(); 


     } else { 
      showToast(result); 
     } 

     super.onPostExecute(result); 
    } 
} 

而且这个uploadpic方法:

public void uploadPic(File file, String message) throws Exception { 
    try{ 

    StatusUpdate status = new StatusUpdate(message); 
    status.setMedia(file); 
    mTwitter.updateStatus(status);} 
    catch(TwitterException e){ 
     Log.d("TAG", "Pic Upload error" + e.getErrorMessage()); 
     throw e; 
    } 
} 

但最后我在logcat中得到以下错误:

10-11 11:27:39.138: W/System.err(11510): /storage/emulated/0/LazyList/-1504959130: open failed: ENOENT (No such file or directory) 
10-11 11:27:39.138: W/System.err(11510): Relevant discussions can be found on the Internet at: 
10-11 11:27:39.138: W/System.err(11510): http://www.google.co.jp/search?q=b2b52c28 or 
10-11 11:27:39.138: W/System.err(11510): http://www.google.co.jp/search?q=11331d52 
10-11 11:27:39.138: W/System.err(11510): TwitterException{exceptionCode=[b2b52c28-11331d52 b2b52c28-11331d09 b2b52c28-11331d09], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.3} 
10-11 11:27:39.138: W/System.err(11510): at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:192) 
10-11 11:27:39.138: W/System.err(11510): at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61) 
10-11 11:27:39.138: W/System.err(11510): at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98) 
10-11 11:27:39.138: W/System.err(11510): at twitter4j.TwitterImpl.post(TwitterImpl.java:1871) 
10-11 11:27:39.138: W/System.err(11510): at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:252) 
10-11 11:27:39.138: W/System.err(11510): at com.aackaack.twitter.TwitterApp.uploadPic(TwitterApp.java:278) 
10-11 11:27:39.146: W/System.err(11510): at com.aackaack.twitter.Twitt$PostTwittTask.doInBackground(Twitt.java:226) 
10-11 11:27:39.146: W/System.err(11510): at com.aackaack.twitter.Twitt$PostTwittTask.doInBackground(Twitt.java:1) 
10-11 11:27:39.146: W/System.err(11510): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
10-11 11:27:39.146: W/System.err(11510): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
10-11 11:27:39.146: W/System.err(11510): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
10-11 11:27:39.146: W/System.err(11510): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
10-11 11:27:39.146: W/System.err(11510): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
10-11 11:27:39.146: W/System.err(11510): at java.lang.Thread.run(Thread.java:856) 
10-11 11:27:39.146: W/System.err(11510): Caused by: java.io.FileNotFoundException: /storage/emulated/0/LazyList/-1504959130: open failed: ENOENT (No such file or directory) 
10-11 11:27:39.146: W/System.err(11510): at libcore.io.IoBridge.open(IoBridge.java:416) 
10-11 11:27:39.146: W/System.err(11510): at java.io.FileInputStream.<init>(FileInputStream.java:78) 
10-11 11:27:39.146: W/System.err(11510): at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:119) 
10-11 11:27:39.146: W/System.err(11510): ... 13 more 
10-11 11:27:39.146: W/System.err(11510): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory) 
10-11 11:27:39.146: W/System.err(11510): at libcore.io.Posix.open(Native Method) 
10-11 11:27:39.146: W/System.err(11510): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) 
10-11 11:27:39.154: W/System.err(11510): at libcore.io.IoBridge.open(IoBridge.java:400) 
10-11 11:27:39.154: W/System.err(11510): ... 15 more 

所以,请建议我如何解决这个isuue。由于提前

回答

0

,你可以看到logcat中,您发送的路径是不是一个“正确”的道路

/storage/emulated/0/LazyList/-1504959130 

你必须要小心,并检查。在你的情况下,你必须创建一个本地的图像副本,然后才能发送给Twitter,或者你可以分享这个URL,但不会是一样的。

问候,

相关问题