Cómo resolver No se puede encontrar la actividad explícita en firebase AuthUi?
Mientras trabajo con la interfaz de usuario firebase estoy consiguiendo Incapaz de encontrar la clase de actividad explícita com.firebase.ui.auth.KickoffActivity
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FirebaseApp.initializeApp(this); setContentView(R.layout.activity_main); FirebaseApp.initializeApp(this); mAuth=FirebaseAuth.getInstance(); mAuthListner=new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { FirebaseUser user=firebaseAuth.getCurrentUser(); if(user!=null){ Toast.makeText(getApplicationContext(),"Sign in success",Toast.LENGTH_SHORT).show(); } else { startActivityForResult(AuthUI.getInstance() .createSignInIntentBuilder() .setIsSmartLockEnabled(false) .setProviders(AuthUI.EMAIL_PROVIDER,AuthUI.GOOGLE_PROVIDER).build(), RC_SIGN_IN); } } }; }
Mensaje de error completo
- NoClassDefFoundError: com.google.firebase.FirebaseOptions
- Firebase Auth no funciona - "Actualizar los servicios de Google Play" msg en el emulador (Android)
- ¿Cómo dar acceso diferente a diferentes tipos de usuarios para iniciar sesión en Firebase?
- Autenticación de código Qr mediante Firebase
- ¿Cómo puedo permitir que mi aplicación acceda a firebase sin un login?
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.flamanco.trackme/com.firebase.ui.auth.KickoffActivity}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult
Añadidas dependencias en el archivo app / .gradle
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.2.1' compile 'com.google.firebase:firebase-core:10.0.1' compile 'com.google.firebase:firebase-auth:10.0.1' compile 'com.firebaseui:firebase-ui-auth:1.1.1' } apply plugin: 'com.google.gms.google-services'
También agregó plugin en build gradle
classpath 'com.google.gms:google-services:3.0.0'
Finalmente añadí la huella digital SHA1 en mi proyecto de consola firebase.
¿Necesito añadir la actividad auth.kickOff en el archivo de manifiesto?
- Firebase sendPasswordResetEmail no parece funcionar correctamente con firebase-auth: 9.0.2
- Guardar clase en firebase
- Cómo comprobar si la tarea de escritura tuvo éxito en Firebase
- Fusión de manifiesto de Android con las bibliotecas de facebook y firebase
- Firebase (fcm) dice 401 no autorizado
- Recuperar Token de Google Access después de autenticado mediante la autenticación de Firebase
- Administrador de Firebase NoClassDefFoundError: FirebaseOptions $ Builder
- Utilizar DB de Firebase con DB local
Android.content.ActivityNotFoundException: No se puede encontrar la clase de actividad explícita {com.example.flamanco.trackme / com.firebase.ui.auth.KickoffActivity}; ¿Ha declarado esta actividad en su AndroidManifest.xml? En android.app.Instrumentation.checkStartActivityResult
Debe declarar la actividad en el archivo AndroidManifest.xml
Abra su archivo de manifiesto y añada KicoffActivity.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:installLocation="auto"> <activity android:name="KickoffActivity"/> </manifest>
Además, no estoy seguro de que haya inicialmente FirebaseApp dos veces aquí.
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FirebaseApp.initializeApp(this); setContentView(R.layout.activity_main); FirebaseApp.initializeApp(this); }
Por lo general, sólo se debe inicializar una vez en la clase de aplicación, en el método onCreate ().
Crear una nueva clase de aplicación.
public class YourApplicationClass extends Application { @Override public void onCreate() { super.onCreate(); FirebaseApp.initializeApp(this); } }
Y agrega lo mismo en el manifiesto,
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:installLocation="auto"> <application android:name="YourApplicationClass" android:allowBackup="false" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:supportsRtl="true" android:theme="@style/MyMaterialTheme.Base"> <activity android:name="KickoffActivity"/> </application> </manifest>
Asegúrate de haber declarado tu KickoffActivity correctamente en AndroidManifest.xml como
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="xxx.xxx.xxx"> <application android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name=".KickoffActivity"> </activity> </application> </manifest>
Especialmente compruebe el atributo de nombre, si tiene actividad en paquete diga "prueba" entonces tendrá que cambiar el atributo de nombre como
<activity android:name=".test.KickoffActivity"> </activity>
Si todo está bien con AndroidManifest.xml , sugeriría para actualizar sus bibliotecas como se mencionó por deividas .
Puedes consultar las notas de la versión de FirebaseUI aquí https://github.com/firebase/FirebaseUI-Android/releases
También actualice otras bibliotecas firebase para
compile 'com.google.firebase:firebase-core:11.0.4' compile 'com.google.firebase:firebase-auth:11.0.4'
Por último, tengo completamente reinstalar el estudio de Android a la última versión, actualizado todo, incluyendo
- Servicio de reproducción de Google
- Librerías firebase
- Versión gradle
- Google repositoris
Y comencé un nuevo proyecto desde el principio y trabajé sin ningún error. Hay muchas actividades que se agregan automáticamente al agregar las dependencias de AUTHUI. Estas actividades incluyen kickoffactividad, recoverpasswordactividad, registerEmailActivity, etc puedo verificar si por ir a la ruta
/project/module/build/intermediates/manifests/full/debug/AndroidManifest.xml.
Anteriormente no tengo kickoffactividad en este archivo de manifiesto, no sé la razón, pero ahora lo tengo. No creo que la adición manualmente en el archivo de manifiesto de la aplicación funcionará.