Ich habe bereits darüber nachgelesen, wie man nach einem Login eine neue Aktivität startet, aber meine App stürzt immer ab, wenn ich versuche, eine neue Aktivität zu implementieren.Starting MainActivity nach Firebase-Authentifizierung
Ich habe meine Launcher-Klasse Anmeldung Aktivität Aufforderung zur Authentifizierung über Benutzername-Pw/Facebook/Google.
Im Moment versuche ich, die neue Aktivität in der onActivityResult-Methode zu starten, stürzt jedoch ab. Ich habe verschiedene Möglichkeiten versucht, es zu starten, aber jetzt bin ich verloren.
Ich habe es geschafft, ein neues Fragment zu starten, nachdem ich auf die Schaltfläche geklickt habe oder eine neue Aktivität gestartet habe, aber die Anmeldung bereitet mir Probleme.
Danke für Ihre Hilfe - sehr geschätzt!
public class LoginActivity extends AppCompatActivity implements View.OnClickListener{
private static final int RC_SIGN_IN = 0;
private FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//everything for firebase
firebaseAuth = FirebaseAuth.getInstance();
if (firebaseAuth.getCurrentUser() != null) {
//user already signed in
Log.d("AUTH", firebaseAuth.getCurrentUser().getEmail());
} else {
startActivityForResult(AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(
Arrays.asList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build()))
.build(),
RC_SIGN_IN);
}
findViewById(R.id.log_out_button).setOnClickListener(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
if (resultCode == RESULT_OK) {
//user logged in
Log.d("AUTH", firebaseAuth.getCurrentUser().getEmail());
Uri contentUri = data.getData();
startActivity(new Intent(this, MainActivity.class)
.setData(contentUri));
// Intent myIntent = new Intent(LoginActivity.this, MainActivity.class);
// LoginActivity.this.startActivity(myIntent);
/* TEST: START RANDOM FRAGMENT FROM THE ACTIVITY
android.support.v4.app.FragmentManager fragmentManager = LoginActivity.this.getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
TrainingFragment trainingFragment = new TrainingFragment();
fragmentTransaction.add(R.id.fragment_container, trainingFragment);
fragmentTransaction.commit();*/
}
else {
//user not authenticated
Log.d("AUTH", "NOT AUTHENTICATED");
}
}
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.log_out_button) {
AuthUI.getInstance()
.signOut(this)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.d("AUTH", "USER LOGGED OUT!");
//Fragment newFragment = new HomeFragment(); try to start new activity?
//switch to another fragment saying bye or some back next time or sth and then add a button with a "close app" function
/* android.support.v4.app.FragmentManager fragmentManager = LoginActivity.this.getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
TrainingFragment trainingFragment = new TrainingFragment();
fragmentTransaction.add(R.id.fragment_container, trainingFragment);
fragmentTransaction.commit(); */
finish(); //finish ends not only the activity, but the application, without it, the switch from activity to fragment functions :)
}
});
}
}
}
FEHLERPROTOKOLL
D/Android Runtime: Ausschalten VM E/Android Runtime: fatal EXCEPTION: main Prozess: com.example.vreeni.firebaseauthentiction, PID: 28367 java.lang.RuntimeException: Aktivität kann nicht gestartet werden ComponentInfo {com.beispiel.vreeni.firebaseauthentication/com.beispiel.vreeni.firebaseauthentication.MainActivity}: java.lang.IllegalStateException: Diese Aktivität verfügt bereits über eine Aktionsleiste, die vom Fensterdekor bereitgestellt wird. Fordern Sie Window.FEATURE_SUPPORT_ACTION_BAR nicht an, und legen Sie windowActionBar in Ihrem Design auf false fest, um stattdessen eine Toolbar zu verwenden. bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2822) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2897) bei android.app.ActivityThread.-wrap11 (Unknown Source: 0) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1598) bei android.os.Handler.dispatchMessage (Handler.java:105) bei android.os.Looper.loop (Looper.java:251) bei android.app.ActivityThread.main (ActivityThread.java:6563) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767) verursacht durch: java.lang.IllegalStateException: Diese Aktivität verfügt bereits über eine Aktionsleiste, die vom Fensterdekor bereitgestellt wird. Fordern Sie Window.FEATURE_SUPPORT_ACTION_BAR nicht an, und legen Sie windowActionBar in Ihrem Design auf false fest, um stattdessen eine Toolbar zu verwenden. bei android.support.v7.app.AppCompatDelegateImplV9.setSupportActionBar (AppCompatDelegateImplV9.java:201) bei android.support.v7.app.AppCompatActivity.setSupportActionBar (AppCompatActivity.java:129) bei com.example.vreeni.firebaseauthentication. MainActivity.onCreate (MainActivity.java:26) bei android.app.Activity.performCreate (Activity.java:6975) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1214) bei android.app.ActivityThread. performLaunchActivity (ActivityThread.java:2775) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2897) bei android.app.ActivityThread.-wrap11 (Unbekannte Quelle: 0) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1598) bei android.os.Handler.dispatchMessage (Handler.java:105) bei android.os.Looper.loop (Looper.java:251) bei android.app.ActivityThread. main (ActivityThread.java:6563) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) bei com.android .internal.os.ZygoteInit.main (ZygoteInit.java:767)
Fehlerprotokoll bitte .. –
Was ist der Fehler? –
Fehlerprotokoll hinzugefügt – Vee