首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >要在twitter中发布图像,获取错误:打开失败: ENOENT (没有这样的文件或目录)

要在twitter中发布图像,获取错误:打开失败: ENOENT (没有这样的文件或目录)
EN

Stack Overflow用户
提问于 2013-10-11 14:35:47
回答 1查看 522关注 0票数 0

我想发布图片到twitter.So,我正在使用推特代码,通过使用代码我完成了authentication.After,我正在发布图片到twitter.But它没有发布到推特。我使用下面的代码来发布认证后的图像。

代码语言:javascript
运行
复制
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);
    }
}

这就是上传的方法:

代码语言:javascript
运行
复制
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中得到了以下错误:

代码语言:javascript
运行
复制
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

所以请建议我如何解决这个问题。提前感谢

EN

回答 1

Stack Overflow用户

发布于 2013-11-15 08:11:15

正如您在Logcat上看到的,您发送的路径不是“正确的”路径

代码语言:javascript
运行
复制
 /storage/emulated/0/LazyList/-1504959130

你必须小心检查这一点。在您的例子中,您必须创建图像的本地副本,然后才能将其发送到twitter,或者您可以只共享URL,但这将是不同的。

致以敬意,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19311739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档