我正在使用TweetTimelineListAdapter
fromFabric
来显示推文列表。这在禁用 proguard 时效果很好,但是当我启用它时,我的UserTimeline
对象停止在其回调中返回任何成功或失败。
我的日志中没有错误或异常。单步执行代码显示访客登录成功,并且发送了推文请求,但从未收到任何响应。
这是我获取推文的方式:
private void loadTweets() {
TwitterCore.getInstance().logInGuest(new Callback<AppSession>() {
@Override
public void success(Result<AppSession> result) {
// logging in is successful, this code executes
UserTimeline userTimeline = new UserTimeline.Builder()
.screenName("@ScreenName")
.maxItemsPerRequest(100)
.includeReplies(false)
.includeRetweets(true)
.build();
mAdapter = new TweetTimelineListAdapter(TwitterActivity.this, userTimeline);
mAdapter.registerDataSetObserver(mDataSetObserver);
((ListView) findViewById(R.id.tweet_list)).setAdapter(mAdapter);
}
@Override
public void failure(TwitterException e) {
Log.e(TwitterActivity.class.getName(), "Error performing guest login to twitter", e);
}
});
}
private DataSetObserver mDataSetObserver = new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
// display data or error here based on results
// this code is never executed
}
};
这是 Fabric 文档中推荐的我的 proguard 配置文件以及我的一些补充:
-dontwarn com.digits.sdk.android.*ActionBarActivity
# retrofit specific
-dontwarn com.squareup.okhttp.**
-dontwarn com.google.appengine.api.urlfetch.**
-dontwarn rx.**
-dontwarn retrofit.**
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-keep class retrofit.** { *; }
-keepclasseswithmembers class * {
@retrofit.http.* <methods>;
}
# GSON
-keep class com.google.gson.** { *; }
-keep interface com.google.gson.** { *; }
-dontwarn com.google.gson.**