在twitter android应用程序中获取访问令牌时出错

在twitter android应用程序中获取访问令牌时出错,android,twitter4j,Android,Twitter4j,我正在android应用程序中使用twitter4j。我正在使用带有消费者密钥和密码的代码,当我登录到twitter时,它会在第一次尝试时成功登录。但是,当我再次运行代码并重试时,正如我之前经过身份验证一样,它会让我登录,但随后给出“获取访问令牌时出错”。我不知道该怎么处理这件事。。有人能帮忙吗。。我正在使用此代码登录 public class TwitterLoginActivity extends Activity { TextView tv; But

我正在android应用程序中使用twitter4j。我正在使用带有消费者密钥和密码的代码,当我登录到twitter时,它会在第一次尝试时成功登录。但是,当我再次运行代码并重试时,正如我之前经过身份验证一样,它会让我登录,但随后给出“获取访问令牌时出错”。我不知道该怎么处理这件事。。有人能帮忙吗。。我正在使用此代码登录

    public class TwitterLoginActivity extends Activity {
        TextView tv;
        Button loginBtn;

        private TwitterApp mTwitter;
        private ConnectionDetector cd;
        ProgressDialog pDialog;
        private static SharedPreferences mSharedPreferences;
     AlertDialogManager alert = new AlertDialogManager();
        RequestToken requestToken;
        private static final String CONSUMER_KEY = "*****************";
        private static final String CONSUMER_SECRET = "*****************************************";

        static String PREFERENCE_NAME = "twitter_oauth";
      static final String PREF_KEY_OAUTH_TOKEN = "oauth_token";
      static final String PREF_KEY_OAUTH_SECRET = "oauth_token_secret";
      static final String PREF_KEY_TWITTER_LOGIN = "isTwitterLogedIn";


      static final String URL_TWITTER_AUTH = "auth_url";
      static final String URL_TWITTER_OAUTH_VERIFIER = "oauth_verifier";
      static final String URL_TWITTER_OAUTH_TOKEN = "oauth_token";

      public void storeAccessToken(AccessToken aToken)   {
            SharedPreferences.Editor editor = mSharedPreferences.edit();
            editor.putString(PREF_KEY_OAUTH_TOKEN, aToken.getToken());
            editor.putString(PREF_KEY_OAUTH_SECRET, aToken.getTokenSecret());
            editor.commit();}
        private enum FROM {
            TWITTER_POST, TWITTER_LOGIN
        };

        private enum MESSAGE {
            SUCCESS, DUPLICATE, FAILED, CANCELLED
        };

        @SuppressLint("NewApi")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            setContentView(R.layout.twitter_login);
            super.onCreate(savedInstanceState);
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                    .permitAll().build();
            StrictMode.setThreadPolicy(policy);
            mTwitter = new TwitterApp(this, CONSUMER_KEY, CONSUMER_SECRET);
            requestToken = mTwitter.getOAuthRequestToken;

            tv = (TextView) findViewById(R.id.welcome_txt);
            loginBtn = (Button) findViewById(R.id.login_btn);
            loginBtn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    mTwitter.setListener(mTwLoginDialogListener);
                    mTwitter.resetAccessToken();
                    if (mTwitter.hasAccessToken() == true) {
                        postAsToast(null, null);

                    }
                    else {
                        mTwitter.authorize();
                    }

                }
            });
        }

        private void postAsToast(FROM twitterPost, MESSAGE success) {
            switch (twitterPost) {
            case TWITTER_LOGIN:
                switch (success) {
                case SUCCESS:
                    Toast.makeText(this, "Login Successful", Toast.LENGTH_LONG).show();

                    break;
                case FAILED:
                    Toast.makeText(this, "Login Failed", Toast.LENGTH_LONG).show();
                default:
                    break;
                }
                break;

            }
        }


        private TwDialogListener mTwLoginDialogListener = new TwDialogListener() {

            public void onError(String value) {
                postAsToast(FROM.TWITTER_LOGIN, MESSAGE.FAILED);
                Log.e("TWITTER", value);
                mTwitter.resetAccessToken();
            }

            public void onComplete(String value) {

                Intent intent = new Intent(TwitterLoginActivity.this,
                        TweetsListActivity.class);
                startActivity(intent);
                finish();
            }

        };
    }

i have also used AlertDialogManager.java,ConnectionDetector.java classes in right manner. please help
请参阅此链接:

如果有任何疑问,请告诉我

它工作得很好…只要使用最新的jar文件就可以了

编辑: 只需在oncreate off活动中添加以下代码:

 if (android.os.Build.VERSION.SDK_INT > 9) {
          StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
          StrictMode.setThreadPolicy(policy);
        }
请参阅此链接:

如果有任何疑问,请告诉我

它工作得很好…只要使用最新的jar文件就可以了

编辑: 只需在oncreate off活动中添加以下代码:

 if (android.os.Build.VERSION.SDK_INT > 9) {
          StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
          StrictMode.setThreadPolicy(policy);
        }


我看不到编辑内容@OhlinI在你的问题中添加了
android
标签。问题的标题有点不清楚问题是关于什么的。是关于登录问题。当我给出消费者密钥和密码时,第一次登录成功。。但当我再次运行我的应用程序时,我已经用我的id和密码进行了身份验证,但并没有进入应用程序,而是显示“登录失败”。。并在Logcat中给出“获取访问令牌时出错”您的MainActivity在第123行包含什么?没有第123行。请指示您正在谈论的行,我看不到编辑内容@OhlinI在你的问题中添加了
android
标签。问题的标题有点不清楚问题是关于什么的。是关于登录问题。当我给出消费者密钥和密码时,第一次登录成功。。但当我再次运行我的应用程序时,我已经用我的id和密码进行了身份验证,但并没有进入应用程序,而是显示“登录失败”。。并在Logcat中给出“获取访问令牌时出错”您的MainActivity在第123行包含什么?没有第123行。4.请把你说的这句话给我听好了。。能不能请你详细说明一下你在哪里度过的时光?嗨。我从您建议的链接下载了源代码,并在libs文件夹中添加了twitter4j-core-3.0.3.jar文件,替换了现有的twitter4j-core-android-2.2.jar,但它不起作用,迫使应用程序关闭。logcat中的错误链接到此,谢谢您的回答。。我不熟悉安卓系统。。这对我真的很有帮助。。谢谢,我有问题了。我的密码在这里。。我正在使用登录按钮登录twitter,成功登录后,我希望第二个活动应该打开。。但登录后,应用程序再次从登录页面启动,而不是直接进入第二个活动。下面是不获取此toast的代码toast.makeText(getApplicationContext(),“已登录twitter”,toast.LENGTH\U LONG.show();这对我很管用。。能不能请你详细说明一下你在哪里度过的时光?嗨。我从您建议的链接下载了源代码,并在libs文件夹中添加了twitter4j-core-3.0.3.jar文件,替换了现有的twitter4j-core-android-2.2.jar,但它不起作用,迫使应用程序关闭。logcat中的错误链接到此,谢谢您的回答。。我不熟悉安卓系统。。这对我真的很有帮助。。谢谢,我有问题了。我的密码在这里。。我正在使用登录按钮登录twitter,成功登录后,我希望第二个活动应该打开。。但登录后,应用程序再次从登录页面启动,而不是直接进入第二个活动。下面是不获取此toast的代码toast.makeText(getApplicationContext(),“已登录twitter”,toast.LENGTH\U LONG.show();