[DEFAULT] नाम के साथ FirebaseApp मौजूद नहीं है


81

फायरबेस क्लाउड मैसेजिंग में माइग्रेट करने के बाद। मेरा ऐप खोलने पर यह क्रैश हो जाता है और यह कहते हुए एक त्रुटि निकालता है कि 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());

}
}

जवाबों:


111

कृपया डबल चेक करें, आपने जोड़ा

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

एप्लिकेशन की ग्रेड फ़ाइल के निचले भाग में और फिर परियोजना को साफ और पुनर्निर्माण करें


मैं हटा दिया apply plugin: 'com.google.gms.google-services' मेरे ऐप Gradle से लेकिन जब बुला एक नया त्रुटि का सामना करना FirebaseInstanceId.getInstance().getToken()मेरे में MainActivityमेरी ऐप्लिकेशन क्रैश।
natsumiyu

1
मेरा बुरा ... मैं जोड़ने की जरूरत है apply plugin: 'com.google.gms.google-services' ? इसे जोड़ने की कोशिश मैं अभी भी त्रुटि का सामना। यह कहता हैDidn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"
natsumiyu

हाय मोरी, आप इस त्रुटि को अभी तक अनदेखा कर सकते हैं और वे अगली रिलीज़ में इस समस्या को ठीक कर देंगे। फायरबैस टीम :) क्या कहती है।
वेंकटेशन

जब मैं इसे जोड़ता हूं तो मुझे मिलता है: "त्रुटि: कार्य के लिए निष्पादन विफल रहा ': ऐप: mergeModernDebResResources'>> [string / google_api_key] /<path>/app/src/main/res/values/defaults.xml [string / google_api_key]। /<path>/app/build/generated/res/google-services/modern/debug/values/values.xml: त्रुटि: डुप्लिकेट संसाधन "मैंने एफसीएम के लिए सेटअप या माइग्रेशन गाइड में भी यह कदम नहीं देखा है। क्या आपके पास एक लिंक है जो मुझे याद हो सकती है?
सी निक

1
स्पंदन की आवश्यकता हो सकती है flutter clean & flutter runजैसा कि उत्तर में भी सुझाया गया है।
नाए

21

यकीन नहीं होता, अगर यह यहां प्रासंगिक है। लेकिन एक और परिदृश्य है जब यह दुर्घटना हो सकती है।


यदि आपके ऐप में एक सेवा है (विभिन्न प्रक्रिया के साथ) और आप अपनी खुद की Applicationकक्षा बना रहे हैं , तो सेवा और अग्रभूमि ऐप आरंभ करने के लिए समान एप्लिकेशन वर्ग ( समान उदाहरण नहीं ) का उपयोग करेगा । अब जब मैं com.google.firebase:firebase-crashक्रैश को संभालने के लिए निर्भरता का उपयोग कर रहा हूं , तो यह एक पृष्ठभूमि सेवा बनाता है your.app.packagename:background_crash। किसी कारण से, यह मेरे ऐप पर दुर्घटनाओं को प्रेरित कर रहा था। विशेष रूप से, क्योंकि मेरे अनुप्रयोग वर्ग में, मैं एक कॉल कर रहा था जैसे,

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

मैं मान रहा हूँ, पृष्ठभूमि सेवा जब हमारे आवेदन वर्ग के साथ प्रवेश कर रही है, किसी तरह फायरबेस को आरंभीकृत नहीं किया गया है। इसे ठीक करने के लिए, मैंने किया

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

विज्ञापनों के साथ भी ऐसा होता है। यदि कोई उपयोगकर्ता किसी विज्ञापन पर क्लिक करता है, तो ऐप में वापस आ जाता है तो Firebase उपलब्ध नहीं है।
theJosh

@ कोडवेल्ली, मेरे मामले में, एक और प्रक्रिया थी (एडोब क्रिएटिव एसडीके इमेज एडिटर) जिसे ऐप कहा गया था: संपादक। यह एक ही एप्लिकेशन क्लास का उपयोग कर रहा था, इस प्रकार गैर-मौजूदा फायरबेस ऐप से टोकन प्राप्त करने की कोशिश कर रहा था। टोकन मिलने से पहले जांचने से मेरी समस्या हल हो गई। आपको बहुत - बहुत धन्यवाद! :)
razaeeff

12

मेरे पास भी ऐसी ही समस्या है, और मेरे लिए यह एक बग / समस्या थी जो मैनिफ़ेस्ट मर्जर के साथ थी। मुझे पता चला है कि मेरे ऐप की मैनिफ़ेस्ट फ़ाइल के FirebaseInitProviderकारण अंतिम प्रकट फ़ाइल में इंजेक्शन नहीं लगाया गया है tools:node="replace"। इसलिए, इस xml टैग को हटाने का प्रयास करें और FirebaseInitProviderइसे इंजेक्ट किया जाएगा और फायरबेस को ठीक से इनिशियलाइज़ किया जा सकता है।


क्या आप उन लोगों के लिए अपने जवाब को अपडेट कर सकते हैं जो विलय उपकरण @jmodrako के साथ ज्यादा पारिवारिक नहीं हैं
किलर

वर्तमान में मैंने उपकरणों को अपडेट किया है: उपकरण के बजाय = "एंड्रॉइड: नाम" को बदलें: नोड = "बदलें"। उम्मीद है कि मदद
किलर

11

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'

त्रुटि: (90, 0) आईडी के साथ प्लगइन 'com.google.gms.google-services' नहीं मिला।
गिल्बर्टो इबारा

10

@jmodrako उत्तर ने मेरी समस्या को हल कर दिया ... tools:node="replace"कोtools:node="merge"

समझाया ... AndroidManifest.xml पर

से

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

सेवा

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

पुस्तकालय विषयों के साथ समस्याओं को मर्ज करें? उपयोग करके हल की गई समस्याओं का निर्माण करेंtools:replace="android:theme"

इसका श्रेय https://stackoverflow.com/a/38060272/2765087


2

अनुप्रयोग वर्ग के ऑनक्रिएट के अंदर अपने फायरबेस आरंभीकरण को ले जाएँ। यदि आपने ऑफ़लाइन दृढ़ता को सक्षम किया है, तो FirebaseDatabase.getInstance ()। SetPersistenceEnabled (सत्य) किसी भी अन्य इनिशियलाइज़ेशन से पहले आना चाहिए।


अब गलती से वोट पर क्लिक कर दिया, तो मुझे अपवित्र करने की अनुमति नहीं है :(
विकसित

2

नीचे दिए गए सभी कॉन्फ़िगरेशन सत्यापित करें:

1-फायरबेस प्रोजेक्ट सेटिंग: google-services.json सही है? यहाँ छवि विवरण दर्ज करें

2- फायरबेस एसडीके जोड़ें यहाँ छवि विवरण दर्ज करें

3- स्वच्छ - अपने प्रोजेक्ट का पुनर्निर्माण करें

उम्मीद है, यह मदद करता है!


2

एप्लिकेशन / build.gradle के लिए निम्न पंक्ति जोड़ें

apply plugin: 'com.google.gms.google-services'  // Google Services plugin

और build.gradle प्रोजेक्ट करने के लिए निम्न लाइन

classpath 'com.google.gms:google-services:4.3.3'

0

Android स्टूडियो

  1. प्लगइन लागू करें: 'com.google.gms.google-services' (build.gradle - मॉड्यूल परत)
  2. मेनू ~> बिल्ड ~> CleanProject

मेरे लिए ठीक काम करता है।


0

Firebase में अपना आवेदन पंजीकृत करें और अपने रूट प्रोजेक्ट में google-services.json को कॉपी करें।

लागू classpath 'com.google.gms:google-services:3.1.0आप पर build build.gradle।

apply plugin: 'com.google.gms.google-servicesअपनी परियोजना के लिए लागू करें ।


0

अपनी निर्भरता में बस जोड़ें:

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

मेरे मामले में मैं ऐप स्टार्टअप पर फायरबेस को शुरू नहीं कर रहा था, मुझे इसे हल करने के लिए निम्नलिखित करना था

@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);
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.