Edit===========
粘贴自MANIFEST.MF文件:
Main-Class: winterwell.jtwitter.Twitter
Implementation-Version: 2.9.0
Implementation-Title: JTwitter client library by Winterwell
Android Studio 0.2.9
jtwitter 2.9.0你好,
我一直在跟踪marakana关于创建yamba客户端的视频。
但是,我注意到getPublicTimeline api调用现在已经从jtwitter中删除了,因为twitter不再支持这一点。所以我已经试着用另一种方法来代替,但我得到了一个错误,我已经剪切和粘贴在下面。
我尝试过的不同API是getFriendsTimeline,getHomeTimeline。
我正在使用的代码片段:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.status);
edit_status = (EditText)findViewById(R.id.editText);
tw = new Twitter("student", "password");
tw.setAPIRootUrl("http://yamba.marakana.com/api");
}
public class GetHomeStatus extends AsyncTask<String, Integer, String>
{
@Override
protected String doInBackground(String... statues)
{
int i = 0;
List<winterwell.jtwitter.Status> timeline;
try {
timeline = twitter.getFriendsTimeline();
//twitter.setStatus("Hello, there!");
}
catch (TwitterException e) {
e.printStackTrace();
return "Failed to get timeline";
}我不认为后台线程有问题,因为twitter.setStatus("Hello, there!");工作得很好。
许多建议将是非常感激的
例外:
275-445/system_process W/InputMethodManagerService﹕ Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4193edb0 attribute=null, token = android.os.BinderProxy@4177e720
09-11 03:58:37.108 3187-3204/com.sunsystems.yambaapp W/System.err﹕ winterwell.jtwitter.TwitterException: 301 Moved Permanently
09-11 03:58:37.108 3187-3204/com.sunsystems.yambaapp W/System.err﹕ HTTP/1.1 301 Moved Permanently https://marakana.com/s/tags/breaking_open/?include_entities=1& -> https://marakana.com/s/tags/breaking_open/?include_entities=1&
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at winterwell.jtwitter.URLConnectionHttpClient.processError(URLConnectionHttpClient.java:513)
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at winterwell.jtwitter.URLConnectionHttpClient.connect(URLConnectionHttpClient.java:155)
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at winterwell.jtwitter.URLConnectionHttpClient.getPage2(URLConnectionHttpClient.java:311)
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at winterwell.jtwitter.URLConnectionHttpClient.getPage(URLConnectionHttpClient.java:251)
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at winterwell.jtwitter.Twitter.getStatuses(Twitter.java:1660)
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at winterwell.jtwitter.Twitter.getHomeTimeline(Twitter.java:1162)
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at winterwell.jtwitter.Twitter.getFriendsTimeline(Twitter.java:1153)
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at com.sunsystems.yambaapp.UpdateService$GetHomeStatus.doInBackground(UpdateService.java:70)
09-11 03:58:37.118 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at com.sunsystems.yambaapp.UpdateService$GetHomeStatus.doInBackground(UpdateService.java:61)
09-11 03:58:37.128 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-11 03:58:37.128 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:234)
09-11 03:58:37.128 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
09-11 03:58:37.128 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
09-11 03:58:37.128 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
09-11 03:58:37.128 3187-3204/com.sunsystems.yambaapp W/System.err﹕ at java.lang.Thread.run(Thread.java:841)发布于 2013-09-20 17:41:48
我能够使用JTwitter 2.9.0再现上述异常。我先前提出建议的原因是:
List<winterwell.jtwitter.Status> timeline;我使用的是JTwitter库的修改版本:JTwitterYamba。此库不包含winterwell.jtwitter.Status。相反,Status是在winterwell.jtwitter.Twitter中定义的一个内部类,它创建了完全限定的路径:winterwell.jtwitter.Twitter.Status。
List<winterwell.jtwitter.Twitter.Status> timeline;因此,我没有要求您丢失JTwitter jar并添加JTwitterYamba jar,相反,我建议您添加JTwitterYamba jar。抱歉弄乱了。
问题是:
这两个库实现Twitter.getFriendsTimeline()的方式不同。以下是JTwitterYamba所做的工作:
public List<Status> getFriendsTimeline() throws TwitterException {
// Take note of the URL suffix: /statuses/friends_timeline.json
return getStatuses(TWITTER_URL + "/statuses/friends_timeline.json",
standardishParameters(), true);
}下面是JTwitter所做的工作:
@Deprecated
public List<Status> getFriendsTimeline() throws TwitterException {
return getHomeTimeline();
}
public List<Status> getHomeTimeline() throws TwitterException {
assert http.canAuthenticate();
// The URL isn't the same
return getStatuses(TWITTER_URL + "/statuses/home_timeline.json",
standardishParameters(), true);
}你能做些什么来解决这个问题:
您可以从项目中删除JTwitter并添加JTwitterYamba jar:链接。您必须将winterwell.jtwitter.Status更改为winterwell.jtwitter.Twitter.Status。
或者,您也可以检查是否允许修改库,以及是否允许修改库。添加一个使用TWITTER_URL + "/statuses/friends_timeline.json"作为Twitter.getStatuses方法参数之一的公共方法。
发布于 2013-09-20 05:53:52
马拉卡纳被推特收购后重定向到围圈。
根据此页的说法,有两件事值得尝试.
通过右键单击您的项目,从apk获取.jar,选择Properties并转到Java路径。在那里,转到tab Order和Export jtwiiter-yamba.jar。同时移除这些硬编码行
// twitter = new Twitter("student", "password");
// twitter.setAPIRootUrl("http://yamba.marakana.com/api");https://stackoverflow.com/questions/18848001
复制相似问题