TweetTimelineListAdapter
fromを使ってFabric
つぶやきの一覧を表示しています。これはプロガードを無効にしても問題なく動作しますが、有効にすると、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 docs で推奨されているプロガード構成ファイルと、私が追加したものです。
-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.**