授权完成时出现错误
10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_钱包E/Twitter: com.twitter.sdk.android.core.TwitterAuthException:授权失败。10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_钱包E/Twitter: com.twitter.sdk.android.core.identity.TwitterAuthClient.handleAuthorize(TwitterAuthClient.java:110) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_钱包E/Twitter: com.twitter.sdk.android.core.identity.TwitterAuthClient.authorize(TwitterAuthClient.java:101) 10-26 11:58:33.404 7456-7456/com。com.twitter.sdk.android.core.identity.TwitterLoginButton$LoginClickListener.onClick(TwitterLoginButton.java:161) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_ idfcwalletapp.idfc_wallet E/Twitter: at android.view.View.performClick(View.java:5198) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_idfcwalletapp.idfc_wallet E/Twitter: at android.view.View$PerformClick.run(View.java:( 21147) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_wallet /Twitter: at android.os.Handler.handleCallback(Handler.java:739) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_ android.os.Handler.dispatchMessage(Handler.java:95) E/Twitter: at android.os.Handler.dispatchMessage(Handler.java:95) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_钱包E/Twitter: atandroid.app.ActivityThread.main(ActivityThread.java:5417) android.os.Looper.loop(Looper.java:148) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_android.os.Looper.loop E/Twitter: at android.os.Looper.loop 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfcwalletapp.idfc_android.os.Looper.loop E/Twitter: at java.lang.reflect.Method.invoke(本地方法) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp。com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_ idfc_wallet E/Twitter: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
我的片段代码是:
public class FragmentSample extends Fragment {
private TwitterLoginButton loginButton;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView=inflater.inflate(R.layout.fragment_sample,container,false);
loginButton = (TwitterLoginButton)rootView. findViewById(R.id.twitter_login_button);
return rootView;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(getActivity(), new Twitter(authConfig));
loginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
// The TwitterSession is also available through:
// Twitter.getInstance().core.getSessionManager().getActiveSession()
TwitterSession session = result.data;
// TODO: Remove toast and use the TwitterSession's userID
// with your app's user model
String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")";
Toast.makeText(getActivity(), msg, Toast.LENGTH_LONG).show();
}
@Override
public void failure(TwitterException exception) {
Log.d("TwitterKit", "Login with Twitter failure", exception);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
loginButton.onActivityResult(requestCode, resultCode, data);
}
}发布于 2017-02-03 10:05:49
虽然很晚才是解决之道。
片段的onActivityResult不被直接调用。它调用您的活动的onActivityResult,它调用您的片段。因此,首先在您的活动上覆盖onActivityResult,如下所示,
fragment = getSupportFragmentManager().findFragmentByTag(title);
if (fragment != null) {
fragment.onActivityResult(requestCode, resultCode, data);
}希望能奏效:)
https://stackoverflow.com/questions/33340386
复制相似问题