将 Twitter API 与 Fabric 一起使用

Posted

技术标签:

【中文标题】将 Twitter API 与 Fabric 一起使用【英文标题】:Using Twitter API with Fabric 【发布时间】:2015-03-13 18:27:16 【问题描述】:

当调试程序时得到推文,但当我只运行时说“不幸的是,APP 已停止。”

private void CargarTweets() 
    setProgressBarIndeterminateVisibility(true);

    myLayout.removeAllViews();

    StatusesService statusesService = Twitter.getApiClient().getStatusesService();

    statusesService.userTimeline(null,"wgcv",10,null,null,null,null,null,null, new Callback<List<Tweet>>() 

        @Override
        public void success(Result<List<Tweet>> listResult) 
            setProgressBarIndeterminateVisibility(false);

            for (Tweet tweet : listResult.data) 
                myLayout.addView(
                        new CompactTweetView(Principal.this, tweet));
            
        

        @Override
        public void failure(TwitterException e) 

        
    );

Logcat:

03-13 13:49:09.937    3093-3093/me.wgcv.emergenciasgye E/androidRuntime﹕ FATAL EXCEPTION: main
    Process: me.wgcv.emergenciasgye, PID: 3093
    java.lang.IllegalArgumentException: MetricsManager may not be null
            at com.twitter.sdk.android.tweetui.internal.TweetViewMetric.<init>(TweetViewMetric.java:30)
            at com.twitter.sdk.android.tweetui.BaseTweetView.getTweetViewMetric(BaseTweetView.java:355)
            at com.twitter.sdk.android.tweetui.BaseTweetView.initComponents(BaseTweetView.java:347)
            at com.twitter.sdk.android.tweetui.BaseTweetView.<init>(BaseTweetView.java:135)
            at com.twitter.sdk.android.tweetui.BaseTweetView.<init>(BaseTweetView.java:115)
            at com.twitter.sdk.android.tweetui.BaseTweetView.<init>(BaseTweetView.java:105)
            at com.twitter.sdk.android.tweetui.CompactTweetView.<init>(CompactTweetView.java:19)
            at me.wgcv.emergenciasgye.Principal$1.success(Principal.java:66)
            at com.twitter.sdk.android.core.Callback.success(Callback.java:23)
            at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

【问题讨论】:

???请提供更多信息... 当我调试程序运行正常,但是当我运行程序崩溃。我认为是请愿书的响应时间 03-13 13:45:08.377 3013-3013/me.wgcv.emergenciasgye E/AndroidRuntime:致命异常:主进程:me.wgcv.emergenciasgye,PID:3013 java.lang.IllegalArgumentException: MetricsManager 在 com.twitter.sdk.android.tweetui.internal.TweetViewMetric.(TweetViewMetric.java:30) 可能不为空 请在编辑您的问题时添加此信息。 【参考方案1】:

添加应用

    TwitterCore.getInstance().logInGuest(new Callback() 
        @Override
        public void success(Result result) 
            AppSession guestAppSession = (AppSession) result.data;
            TwitterApiClient twitterApiClient =  TwitterCore.getInstance().getApiClient(guestAppSession);
            StatusesService statusesService = Twitter.getApiClient().getStatusesService();
            statusesService.userTimeline(382469423L,null,10,null,null,null,null,null,null, new Callback<List<Tweet>>() 

                @Override
                public void success(Result<List<Tweet>> listResult) 
                    setProgressBarIndeterminateVisibility(false);

                    for (Tweet tweet : listResult.data) 
                        myLayout.addView(
                                new CompactTweetView(Principal.this, tweet));
                    
                

                @Override
                public void failure(TwitterException e) 
                    Log.e("Error","Error");
                
            );
        

        @Override
        public void failure(TwitterException exception) 
            // unable to get an AppSession with guest auth
        
    );

【讨论】:

以上是关于将 Twitter API 与 Fabric 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Twitter REST API 与 Twitter Fabric - Twitter 核心

Fabric(twitter api)设置问题。使用迅捷

如何通过 twitter 的 Fabric API (Android) 获取用户数据

使用fabric api在twitter上搜索用户名、hashtag

twitter listViwe Fabric Kit的OClickItem

Xamarin 上的 Fabric TwitterKit