メールとパスワードを使用したユーザー登録にFirebaseAuthを使用していますが、既にプロジェクトにプラグインと依存関係を追加しています。
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)
アプリが起動せず、次のエラーが表示されます。
Java.lang.IllegalStateException: Default FirebaseApp is not initialized in this
process com.skapsdevelopment.firebase.
Make sure to call FirebaseApp.initializeApp(Context) first.
アプリが正常に起動しないのはなぜですか?
これが私のために働いたので、以下を再確認してください:
プロジェクトレベルのgradleファイルに追加:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
そして、あなたのアプリビルドgradleファイルで:
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'
Docs には、FirebaseApp.initializeApp()をアプリケーションから呼び出す必要があることが記載されています。
Applicationインスタンスを作成しようとしましたか(まだない場合)、onCreate()メソッドからFirebaseApp.initializeApp(this)
を呼び出しましたか?
このクラスパス「com.google.gms:google-services:4.0.1」をクラスパス「com.google.gms:google-services:4.1.0」の場所に追加してください
まず、アプリケーションをFirebase Consoleに登録し、アプリにgoogle-services.jsonファイルを追加したことを確認してください。
次に、すべてのdependencyを追加したかどうかを確認します。 App-bulid Gradleファイルに次の依存関係を追加します:-
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.google.gms:google-services:4.0.0'
}
プロジェクトレベルのbulid gradle file:-を追加します
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'
私も上記の問題に直面しました。すべてのプラグインをダウンロードし、NuGetで更新を確認しました。結局、クラッシュはアプリケーションパッケージ名がGoogle Devで割り当てられたものと一致しないことが原因であることがわかりました。
Google-services.jsonにGoogleServicesJsonのビルドアクションが割り当てられていることを確認してください
アプリケーションパッケージ名がGoogle Dev Consoleで割り当てたものと一致することを確認します
次の手順を実行します:
FirebaseApp.initializeApp(context);
を削除します詳細については、 Firebase Authentication Guide を参照してください。
私のために働いたのは:
アクティビティFirebaseApp.initializeApp(this);
メソッドにonCreate()
を追加します。
ダウングレードcom.google.gms:google-srvices
プロジェクトレベルbuild.gradle
4.2.0から4.0.0まで
それは変化しています:
dependencies {
classpath 'com.Android.tools.build:gradle:3.3.2'
classpath 'com.google.gms:google-services:4.2.0'
}
に:
dependencies {
classpath 'com.Android.tools.build:gradle:3.3.2'
classpath 'com.google.gms:google-services:4.0.0'
}
私の場合、Proguardが問題を引き起こしていたので、これが私がしたことです。-AndroidManifest.xmlに"YourClass"
または".YourClass"
、完全なパッケージ名に変更します:"com.yourpackage.yourClass"
パーティーに少し遅れましたが、ソリューションを共有したいと思いました。うまくいけば他の人に役立つ
数時間前、私は非常によく似た問題を抱えていました。ここですべてを試しましたが、何も機能しませんでした。私の依存関係はすべて正しく、それは意味がありませんでした。
私が知らなかったことは、このアプリケーションをFirebaseに登録する必要があるということでした。この手順をステップごとに実行しました guide andvoilà!できます!推奨されるクラスパス依存関係を使用する代わりに、これを必ず使用してくださいcom.google.gms:google-services:4.2.0
。
プログラムにinitializeAppを追加する必要があります。それがどのように行われるかをお見せできます。
最初に新しいクラスを作成し、Application
を拡張します。
public class SimpleBlog extends Application {
@Override
public void onCreate() {
super.onCreate();
if(!FirebaseApp.getApps(this).isEmpty()) {
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
}
最後に、マニフェストに移動して、次のようなアプリケーションを追加します。
<application
Android:name=".SimpleBlog" <------
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
そしてこれがすべてです...
プロジェクトのbuild.gradleでGoogleサービスプラグインをバージョン4.1.0からバージョン4.0.1にダウングレードします
classpath 'com.google.gms:google-services:4.0.1'