J'utilise FirebaseAuth pour l'enregistrement de l'utilisateur avec email et mot de passe, et j'ai déjà ajouté le plugin et les dépendances dans mon projet.
MainActivity.Java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
EditText ed_email, ed_pass;
Button but_login;
ProgressDialog progressDialog;
FirebaseAuth firebaseAuth;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=getApplicationContext();
FirebaseApp.initializeApp(context);
firebaseAuth=FirebaseAuth.getInstance();
ed_email= (EditText) findViewById(R.id.ed_email);
ed_pass= (EditText) findViewById(R.id.ed_pass);
but_login= (Button) findViewById(R.id.but_login);
but_login.setOnClickListener(this);
progressDialog=new ProgressDialog(this);
}
public void registerUser(){
String email=ed_email.getText().toString().trim();
String pass=ed_pass.getText().toString().trim();
if(TextUtils.isEmpty(email)){
Toast.makeText(getApplicationContext(),"Invalid Input",Toast.LENGTH_SHORT).show();
return;
}
if(TextUtils.isEmpty(pass)){
Toast.makeText(getApplicationContext(),"Invalid Input",Toast.LENGTH_SHORT).show();
return;
}
progressDialog.setMessage("You are registering...");
progressDialog.show();
firebaseAuth.createUserWithEmailAndPassword(email,pass).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show();
progressDialog.hide();
} else {
Toast.makeText(getApplicationContext(), "Sorry...!!!", Toast.LENGTH_SHORT).show();
progressDialog.hide();
}
}
});
}
@Override
public void onClick(View v) {
registerUser();
}
}
logcat -
com.skapsdevelopment.firebase E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.skapsdevelopment.firebase, PID: 31993
Theme: themes:{default=overlay:com.resurrectionremix.pitchblack, iconPack:com.baranovgroup.nstyle, fontPkg:com.resurrectionremix.pitchblack, com.Android.systemui=overlay:com.resurrectionremix.pitchblack, com.Android.systemui.navbar=overlay:com.resurrectionremix.pitchblack}
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.skapsdevelopment.firebase/com.skapsdevelopment.firebase.MainActivity}: Java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.skapsdevelopment.firebase. Make sure to call FirebaseApp.initializeApp(Context) first.
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2450)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2510)
at Android.app.ActivityThread.-wrap11(ActivityThread.Java)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1363)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:148)
at Android.app.ActivityThread.main(ActivityThread.Java:5461)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:726)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:616)
Caused by: Java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.skapsdevelopment.firebase. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.getInstance(Unknown Source)
at com.skapsdevelopment.firebase.MainActivity.onCreate(MainActivity.Java:35)
at Android.app.Activity.performCreate(Activity.Java:6251)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1108)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2403)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2510)
at Android.app.ActivityThread.-wrap11(ActivityThread.Java)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1363)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:148)
at Android.app.ActivityThread.main(ActivityThread.Java:5461)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:726)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:616)
Mon application ne démarre pas et affiche l'erreur suivante:
Java.lang.IllegalStateException: Default FirebaseApp is not initialized in this
process com.skapsdevelopment.firebase.
Make sure to call FirebaseApp.initializeApp(Context) first.
Pourquoi l'application ne démarre pas correctement?
Vérifiez les points suivants, car cela a fonctionné pour moi:
Ajouté dans votre fichier de niveau de projet:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
Et sur votre fichier de graduation app-build:
apply plugin: 'com.Android.application'
Android {
// ...
}
dependencies {
// ...
compile 'com.google.firebase:firebase-core:10.0.1'
// Getting a "Could not find" error? Make sure you have
// the latest Google Repository in the Android SDK manager
}
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
Il est indiqué dans Docs que FirebaseApp.initializeApp () doit être appelé à partir de l'application.
Avez-vous essayé de créer une instance d'application (si vous n'en avez pas déjà une) et appelé FirebaseApp.initializeApp(this)
à partir de sa méthode onCreate ()?
Première chose Assurez-vous d’enregistrer votre application dans la console Firebase et d’avoir ajouté le fichier google-services.json dans l’application.
Deuxièmement, vérifiez si vous avez ajouté tous les dependency ou non . Ajoutez la dépendance suivante dans le fichier App-bulid Gradle: -
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.google.gms:google-services:4.0.0'
}
Et ajoutez dans le fichier project level bulid gradle: -
dependencies
{
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.2'
}
apply plugin: 'com.google.gms.google-services'
Dans mon cas, Proguard était à l'origine du problème, alors voici ce que j'ai fait: - S'il existe une classe dans le fichier AndroidManifest.xml avec "YourClass"
ou ".YourClass"
, remplacez-la par son nom complet: "com.yourpackage.yourClass"
J'ai également fait face au problème ci-dessus. J'ai téléchargé tous les plugins et vérifié les mises à jour avec NuGet. En fin de compte, j'ai constaté que le crash était dû au fait que nom du package d'application ne correspond pas à celui attribué à Google Dev.
Assurez-vous qu'une action de construction est attribuée à votre service google-services.json De GoogleServicesJson
Vérifiez que le nom du package de votre application correspond à celui que vous avez attribué à la console Google Dev.
Grâce aux réponses fournies, j’ai parcouru la liste de contrôle des problèmes possibles lorsque j’ai rencontré cette erreur.
Enfin, j’ai réalisé… j’avais commencé un nouveau module dans Android Studio, avec un nom de package différent de celui déjà enregistré dans la console Firebase pour l’instance Firebase que j’avais configurée. Simple erreur - j'ai oublié d'ajouter le nouveau nom du paquet à la configuration de la console.
Après que j'ai bien compris, cela a commencé à fonctionner. Se souvenir de tous les petits détails attendus par Firebase Console peut parfois être délicat. Il faut être vigilant / "config-cognizant" à coup sûr
veuillez ajouter ce chemin de classe 'com.google.gms: google-services: 4.0.1' à la place du chemin de classe 'com.google.gms: google-services: 4.1.0'
Vous devez ajouter initializeApp dans votre programme. Je peux vous montrer comment c'est fait.
Commencez par créer une nouvelle classe et développez Application
.
public class SimpleBlog extends Application {
@Override
public void onCreate() {
super.onCreate();
if(!FirebaseApp.getApps(this).isEmpty()) {
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
}
Enfin, allez à Manifest et ajoutez dans l’application comme ceci:
<application
Android:name=".SimpleBlog" <------
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
Et c'est tout ...
Suivez ces étapes:
FirebaseApp.initializeApp(context);
car vous n'en avez pas besoin dans les nouvelles versions de Firebase.Pour plus d'informations, voir Guide d'authentification de Firebase .