Problem:
ich ein Problem haben mit twitter.sdk.android:twitter:1.14.1 auf Android SDK 22.fehlgeschlagen ShareEmailActivity erstellen - keine TwitterSession für id
Der Login-Prozess funktioniert korrekt, aber wenn ich die Erlaubnis zum Abrufen der E-Mail-Adresse fragen muss, habe ich die folgende Ausnahme.
E/Twitter: Failed to create ShareEmailActivity.
java.lang.IllegalArgumentException: No TwitterSession for id:559455005
at com.twitter.sdk.android.core.identity.ShareEmailActivity.getSession(ShareEmailActivity.java:85)
at com.twitter.sdk.android.core.identity.ShareEmailActivity.onCreate(ShareEmailActivity.java:58)
at android.app.Activity.performCreate(Activity.java:6876)
-Code:
Haben Sie eine Idee? Nach meiner aktuellen Implementierung:
MyApplication.java
public class MyApplication extends Application {
private static final String TWITTER_KEY = "------------";
private static final String TWITTER_SECRET = "---------------------";
private TwitterAuthConfig authConfig;
public void onCreate(){
super.onCreate();
authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(this, new Twitter(authConfig));
}
}
LoginActivity.java
public class LoginActivity extends Activity {
private TwitterLoginButton mFormButtonTwitterLogin
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mFormButtonTwitterLogin = (TwitterLoginButton) findViewById(R.id.form_button_twitter_login);
mFormButtonTwitterLogin.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
TwitterSession session = result.data;
try {
new TwitterAuthClient().requestEmail(session, new Callback<String>() {
@Override
public void success(Result<String> result) {
final String email = result.data;
Toast.makeText(getApplicationContext(), email, Toast.LENGTH_SHORT).show();
}
@Override
public void failure(TwitterException exception) {
Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_SHORT).show();
}
});
} catch (Exception exception) {
Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void failure(TwitterException exception) {
Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mFormButtonTwitterLogin.onActivityResult(requestCode, resultCode, data);
}
}