0

我想将图像发布到 twitter。所以我正在使用 twitter 代码,通过使用该代码我完成了身份验证。之后我将图像发布到 twitter。但它没有发布到 twitter。我有图像作为 url,如:http: //www.myappdemo.net/AackAack/aacks/20131011015732.jpg . 我正在使用下面的代码在身份验证后发布图像。

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

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

4

1 回答 1

0

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

 /storage/emulated/0/LazyList/-1504959130

你必须小心并检查。在您的情况下,您必须先创建图像的本地副本,然后才能将其发送到 Twitter,或者您可以只共享 URL,但不会相同。

问候,

于 2013-11-15T00:11:14.547 回答