web-dev-qa-db-ja.com

[DEFAULT]という名前のFirebaseAppは存在しません

Firebase Cloud Messagingに移行した後、アプリを開くとクラッシュし、Java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.というエラーがスローされます。新しいgoogle-services.jsonを既に配置し、SDKを更新しています。

これが私のMainActivityです

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

//Check Google play service
    GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();
    int resultCode = googleAPI.isGooglePlayServicesAvailable(this);

    if (resultCode != ConnectionResult.SUCCESS) {
        if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
            GooglePlayServicesUtil.getErrorDialog(resultCode, this,
                    PLAY_SERVICES_RESOLUTION_REQUEST).show();
        } else {
            Log.e(LOG_TAG, "This device is not supported.");
            finish();
        }
    }

    Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken());

}
}
68
natsumiyu

追加を確認してください

apply plugin: 'com.google.gms.google-services' 

アプリのgradleファイルの下部で、プロジェクトを削除して再構築します

72
Venkatesan

ここで関連があるかどうかはわかりません。しかし、このクラッシュが発生する可能性がある別のシナリオがあります。


アプリにサービスがあり(プロセスが異なる)、独自のApplicationクラスを作成している場合、サービスとフォアグラウンドアプリは同じApplicationクラス(同じインスタンスではない)を使用して初期化する。クラッシュを処理するためにcom.google.firebase:firebase-crash依存関係を使用している場合、バックグラウンドサービスyour.app.packagename:background_crashが作成されます。何らかの理由で、これは私のアプリでクラッシュを引き起こしていました。特に、Applicationクラスでは、次のような呼び出しを行っていたため、

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Applicationクラスで初期化するときのバックグラウンドサービスは、どういうわけかFirebaseが初期化されていないことを前提としています。これを修正するために、私はやった

if (!FirebaseApp.getApps(this).isEmpty())
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);
21
Codevalley

私は同様の問題を抱えており、私にとってはマニフェストの合併に伴うバグ/問題でした。アプリのマニフェストファイルのtools:node="replace"が原因で、FirebaseInitProviderが最終的なマニフェストファイルに挿入されていないことがわかりました。したがって、このxmlタグを削除しようとすると、FirebaseInitProviderが挿入され、Firebaseが適切に初期化されます。

12
jmodrako

@jmodrakoの答えは私の問題を解決しました... tools:node="replace"からtools:node="merge"

説明... AndroidManifest.xmlで

From

<application
...
tools:node="replace">

To

<application
...
tools:node="merge">

ライブラリテーマの問題をマージしますか?tools:replace="Android:theme"を使用して解決されたビルドの問題

https://stackoverflow.com/a/38060272/2765087 へのクレジット

build.gradleファイル:

buildscript {
    repositories {
        jcenter()
        mavenLocal()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.1.2'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenLocal()
    }
}

\ app\build.gradleファイル:

apply plugin: 'com.Android.application'

Android {
    ..
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    ..
    compile 'com.google.firebase:firebase-core:9.0.2'
    compile 'com.google.firebase:firebase-messaging:9.0.2'
}

apply plugin: 'com.google.gms.google-services'
10
elron smith

FireCreateの初期化をApplicationクラスのonCreate内に移動します。また、オフライン永続性を有効にしている場合、FirebaseDatabase.getInstance()。setPersistenceEnabled(true)は他の初期化の前に来る必要があります。

2
Ramya Ramesh

ビルドアクション(GoogleServicesJson)をファイル名Google-Services.Jsonに変更します。

0
Abdul basha

依存関係に追加するだけです:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
...
compile 'com.google.firebase:firebase-core:9.0.2'
compile 'com.google.firebase:firebase-messaging:9.0.2'
}

適用plugin: 'com.google.gms.google-services'

0
pavel

Android Studio

  1. プラグインの適用: 'com.google.gms.google-services'(build.gradle-モジュールレイヤー)
  2. メニュー〜>ビルド〜> CleanProject

大丈夫です。

0
Maxim Firsoff

私の場合、アプリの起動時にFirebaseを初期化していませんでした。それを解決するには、次のことをしなければなりませんでした

@Service
public class FirebaseSetup implements CommandLineRunner {
    public void run(String... args) throws Exception {
        initializeFirebase();
    }
    private void initializeFirebase() throws FileNotFoundException, IOException {
        FileInputStream serviceAccount = new FileInputStream(ResourceUtils.getFile("classpath:ssf1-v1-firebase-adminsdk-zr72u-afcb5bc13b.json"));
        FirebaseOptions options = new FirebaseOptions.Builder().setCredentials(GoogleCredentials.fromStream(serviceAccount)).build();
        FirebaseApp.initializeApp(options);
    }
}
0
Anand Rockzz

以下のようにすべての構成を確認します。

1-firebaseプロジェクト設定:google-services.jsonは正しいですか? enter image description here

2- Firebase SDKを追加 enter image description here

3- clean-プロジェクトを再構築します

うまくいけば、これが役立つ!

0
Mr Special

Firebaseでアプリケーションを登録し、google-services.jsonをルートプロジェクトにコピーします。

ルートbuild.gradleにclasspath 'com.google.gms:google-services:3.1.0を適用します。

apply plugin: 'com.google.gms.google-servicesをプロジェクトグラドルに適用します。

0
user2306383