0

TweetTimelineListAdapterfromを使って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.**
4

1 に答える 1