FirebaseApp เริ่มต้นไม่ได้เริ่มต้น


235

เราเห็นข้อยกเว้นบางประการกับข้อความDefault FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.ในแอพ Android ของเราซึ่งเราเพิ่งเพิ่ม Firebase Remote Config

การติดตามสแต็กมีดังนี้:

Fatal Exception: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
       at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
       at com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance(Unknown Source)
       at com.example.app.fragments.SomeFragment.updateFooter(SourceFile:295)
       at com.example.app.fragments.SomeFragment.onCreateView(SourceFile:205)
       at android.support.v4.app.Fragment.performCreateView(SourceFile:2080)
       at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1108)
       at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1290)
       at android.support.v4.app.BackStackRecord.run(SourceFile:801)
       at android.support.v4.app.FragmentManagerImpl.execSingleAction(SourceFile:1638)
       at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(SourceFile:679)
       at android.support.v4.app.FragmentPagerAdapter.finishUpdate(SourceFile:143)
       at android.support.v4.view.ViewPager.populate(SourceFile:1240)
       at android.support.v4.view.ViewPager.populate(SourceFile:1088)
       at android.support.v4.view.ViewPager.setAdapter(SourceFile:542)
       at com.example.app.SomeActivity.onSomeAsyncCallback(SourceFile:908)
       at com.example.app.SomeDataRetriever.onAsyncHttpCompleted(SourceFile:72)
       at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:141)
       at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:19)
       at android.os.AsyncTask.finish(AsyncTask.java:679)
       at android.os.AsyncTask.access$500(AsyncTask.java:180)
       at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:696)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:150)
       at android.app.ActivityThread.main(ActivityThread.java:5665)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)

นี่คือรุ่น 9.6.1 และเรายังใช้ส่วนประกอบ Firebase อื่น ๆ :

compile 'com.google.firebase:firebase-ads:9.6.1'
compile 'com.google.firebase:firebase-config:9.6.1'
compile 'com.google.firebase:firebase-invites:9.6.1'
compile "com.google.firebase:firebase-messaging:9.6.1"

อย่างที่ฉันเห็นได้จากเอกสารประกอบและJavadocเราไม่ควรทำการกำหนดค่าเริ่มต้นด้วยตนเองในกรณีของเรา

ข้อยกเว้นเกิดขึ้นบน Android 4-6 บนอุปกรณ์หลากหลายชนิด

แก้ไข:

ฉันเห็นคำถามนี้ได้รับความสนใจเล็กน้อย ฉันคิดว่าคำอธิบายนี้น่าสนใจสำหรับคุณบางคน: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html


1
ลองค้นหา SO เพื่อหา "Default FirebaseApp ไม่ได้เริ่มต้น" มีสถานการณ์ต่าง ๆ มากมายที่อาจทำให้เกิดปัญหานี้
Doug Stevenson

ใช่ฉันมี ไม่พบสิ่งใดในสถานการณ์ที่ตรงกันดังนั้นฉันจึงถาม อาจกล่าวได้ว่าใน Q.
Roy Solberg

คุณสามารถสร้างตัวอย่างเล็ก ๆ น้อย ๆ ที่ทำให้เกิดปัญหานี้อีกครั้งและแสดงรายการ, build.gradle และกิจกรรมหรือไม่
Doug Stevenson

คุณเริ่มต้น Firebase ใน ContentProvider หรือในคลาส Application ของคุณหรือไม่?
Andrew Kelly

2
ฉันประสบปัญหาเดียวกันสำหรับผู้เล่นเล็กน้อย ใช้ 10.0.1 ล่าสุด
Dmitry

คำตอบ:


136

ฉันมีปัญหาเดียวกันนี้เมื่อไม่นานมานี้

คุณกำลังพยายามรับอินสแตนซ์ของ Firebase โดยไม่เริ่มต้น โปรดเพิ่มรหัสบรรทัดนี้ก่อนที่คุณจะลองรับตัวอย่างของ Firebase:

FirebaseApp.initializeApp(this);

3
@Henrik เฉพาะใน ExtendedApplication.onCreate ()
Roy Solberg

5
สิ่งนี้ไม่ได้ผลสำหรับฉัน (ยังมีข้อขัดข้องเล็กน้อยในการผลิต) ฉันจะลองเพิ่มรหัส init ใน Activity แรกของฉัน onCreate ()
Sébastien

77
เป็นสิ่งสำคัญที่จะต้องทราบว่านอกเหนือจากการเริ่มต้นนี้ต้องใช้บริการของ Google ดังนี้:apply plugin: 'com.google.gms.google-services'
pamobo0609

2
ไฟล์ใดที่ฉันต้องเพิ่ม MainActivity.java นี้
abhit

23
สำหรับฉันรุ่น com.google.gms: google-services: 4.1.0 ล้มเหลว แต่ com.google.gms: google-services: 4.0.1 ทำงานอยู่
Igor Čordaš

345

ตรวจสอบให้แน่ใจว่าได้เพิ่มไปที่ build.gradle ระดับรูทของคุณ

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:4.3.2'
    }
}

จากนั้นในไฟล์ Gradle ระดับโมดูลของคุณ (โดยปกติจะเป็น app / build.gradle) เพิ่มบรรทัด 'Apply plugin' ที่ด้านล่างของไฟล์เพื่อเปิดใช้งานปลั๊กอิน Gradle:

apply plugin: 'com.android.application'

android {
  // ...
}

dependencies {
  // ...
  implementation 'com.google.firebase:firebase-core:9.6.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'

ตามที่กล่าวในเอกสาร ฉันมีข้อยกเว้นในคำถามข้างต้นเมื่อลืมเพิ่มในไฟล์ gradle ของฉัน


2
ตรวจสอบและตรวจสอบ เพิ่งตรวจสอบว่าเราไฟล์ Gradle ตามที่อธิบายไว้ ฉันควรพูดถึงว่ารหัสทำงานได้ดีสำหรับผู้ใช้จำนวนมาก
Roy Solberg

อาจเป็นได้ว่าคุณกำลังผสมเวอร์ชันห้องสมุดของคุณ ฉันมีปัญหาเดียวกันเมื่อฉันพยายามใช้การคอมไพล์'com.google.firebase:firebase-core:9.8.0' ดังนั้นฉันจึงเปลี่ยนcompile 'com.google.firebase:firebase-core:9.6.0'เป็นจับคู่ไลบรารีอื่นของฉัน คำตอบเดิม คุณกำลังผสมรุ่น Firebase SDK ตามที่อธิบาย
crakama

3
'ใช้ปลั๊กอิน:' com.google.gms.google-services 'ใช้งานได้สำหรับฉัน
Rockyfish

7
ไม่ได้ช่วยในกรณีของฉัน และปัญหานี้ส่งผลกระทบต่อผู้เล่นน้อยมาก ดังนั้นส่วนใหญ่แล้วจะไม่เกิดปัญหากับรหัสหรือการตั้งค่า แต่ด้วยความสามารถในการทำงานร่วมกันกับบริการ play ที่ติดตั้งและอุปกรณ์ของผู้ใช้ :-(
Dmitry

2
ขอบคุณ :) ฉันลืมที่จะเพิ่มบรรทัดนี้ใน build.gradle: ใช้ปลั๊กอิน: 'com.google.gms.google-services'
Richi

126

ดูเหมือนว่าgoogle-services:4.1.0จะมีปัญหา ปรับลดรุ่นเป็น

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

หรืออัปเกรดเป็น

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

dependencies {
    classpath 'com.android.tools.build:gradle:3.3.0-alpha08'
    classpath 'com.google.gms:google-services:4.2.0'
    /*classpath 'com.google.gms:google-services:4.1.0' <-- this was the problem */
}

หวังว่ามันจะช่วย


9
มันก็ใช้ได้สำหรับฉันเช่นกัน ดูเหมือนว่าจะมีปัญหาบางอย่างกับ 4.1.0
iuq

ฉันเพิ่งพบปัญหานี้เช่นกันและพบว่ามีการอัปเดตพร้อมใช้งานใน Android Studio 3.2 สำหรับ Android SDK Build-Tools (เครื่องมือ -> ตัวจัดการ SDK -> เครื่องมือ SDK) การใช้การอัปเดตนี้ให้ฉันใช้classpath 'com.google.gms:google-services:4.1.0'อีกครั้ง YMMV
IainCunningham

2
โอ้พระเจ้าใช้เวลากว่า 2 สัปดาห์ในการทำงานนี้และสิ่งที่ฉันต้องทำคือลดระดับจาก 4.1.0 เป็น 4.0.0?!?!?! ขอบคุณตัน
Oliver Spryn

4
ตามด้วยตัวติดตามปัญหาจะได้รับการแก้ไขใน 4.2.0
kuelye

ฉันเพิ่งลดระดับ com.google.gms: google-services: 4.1.0 เป็น om.google.gms: google-services: 4.0.0 และใช้งานได้ มันช่วยชีวิตฉันไว้
Anil

51

ฉันพบบรรทัดด้านล่างในไฟล์แอพ / build.gradleของฉัน

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

และเมื่อทำความสะอาดโครงการและทำงานอีกครั้ง นั่นแก้ไขให้ฉัน



15

สิ่งแรกที่คุณต้องเพิ่ม com.google.gms: google-services: xxx ที่ระดับราก build.gradle

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

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}

หลังจากนั้นคุณต้องใช้ปลั๊กอิน: 'com.google.gms.google-services' ที่ app / build.gradle

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'

compile 'com.google.android.gms:play-services-gcm:9.8.0'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-messaging:9.8.0'
testCompile 'junit:junit:4.12'
}


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

และถ้าคุณยังคงได้รับปัญหาจากนั้นคุณต้องเพิ่ม

FirebaseApp.initializeApp(this);

ก่อนที่คุณจะโทร

FirebaseInstanceId.getInstance().getToken();

12

หลังจากอัปเดตการพึ่งพาต่างๆฉันได้รับข้อผิดพลาด Crashlytics ในการรวบรวม 'Crashlytics พบคีย์ API ที่ไม่ถูกต้อง: null ตรวจสอบปลั๊กอิน Crashlytics เพื่อให้แน่ใจว่ามีการเพิ่มแอปพลิเคชันสำเร็จแล้ว! ติดต่อ support@fabric.io เพื่อขอความช่วยเหลือ ' หนึ่งในการตอบกลับที่ไม่ใช่อัตโนมัติที่ฉันได้รับจากความพยายามซ้ำ ๆ ไปยัง support@fabric.io ข้อผิดพลาดที่นำคุณไปสู่คือ Fabric และ Crashlytics เป็นทีมที่แยกจากกันดังนั้นพวกเขาจึงไม่สามารถช่วยฉันได้ ฉันหลีกเลี่ยงการนำเลเยอร์ผ้าพิเศษไปใช้กับ Crashlytics และไม่สามารถรับคีย์ใหม่จากไซต์ผ้าหรือแม้แต่ทำให้ไซต์นั้นจำฉันได้ ในความพยายามที่จะแก้ไขปัญหานี้โดยเพียงแค่ลบ Crashlytics จากรหัสของฉันฉันได้รับ 'Default FirebaseApp ไม่ได้เริ่มต้นในกระบวนการนี้ com.example.app ตรวจสอบให้แน่ใจว่าได้เรียกความล้มเหลวของ FirebaseApp.initializeApp (บริบท) ก่อน 'ในการเรียกใช้

ฉันไม่เคยต้องเพิ่มบรรทัดการเริ่มต้นของ 'FirebaseApp.initializeApp (นี่)' และอันที่จริงแล้วมันมีความคิดเห็น เอกสารอ้างอิงถึงไม่จำเป็นต้องใช้สิ่งนี้หากใช้ Firebase สำหรับกิจกรรมเดียวเท่านั้น การเพิ่มมันไม่ต่างไปจากเดิม

เปิดใช้งานสิ่งที่ก่อให้เกิดข้อผิดพลาดที่คลุมเครือใหม่คือการขึ้นต่อกันของ google-services สำหรับตอนนี้ฉันไม่มีเวลาที่จะใช้เวลาอีกหลายวันในการแก้ไขข้อผิดพลาดของปืนลูกซองซึ่งเป็นสาเหตุที่ทำให้การพึ่งพาใหม่เกิดขึ้นดังนั้นจนกว่าจะมีใครบางคนมาหาทางแก้ปัญหาฉันจะติดอยู่กับเวอร์ชั่นเก่า นอกเหนือจากความผิดพลาดในการเริ่มต้นแปลก ๆ เวอร์ชันใหม่อาจบังคับให้ Fabric กับผู้ใช้ Crashlytics ผู้ใช้กำลังถูกบังคับให้กลับไปใช้เวอร์ชันเก่าที่ต้องพึ่งพาเช่นกัน: Crashlytics พบคีย์ API ไม่ถูกต้อง: null หลังจากอัปเดต com.google.gms: google-services: 4.1.0

com.google.gms:google-services:4.1.0//BAD
com.google.gms:google-services:4.0.1//GOOD

แก้ไข 10/17/18: หลังจากอัปเดตการพึ่งพาต่อไปนี้อีกครั้ง

implementation 'com.google.firebase:firebase-ads:17.0.0'
implementation 'com.google.firebase:firebase-auth:16.0.4'
implementation 'com.google.firebase:firebase-database:16.0.3'
implementation 'com.google.firebase:firebase-core:16.0.4

ฉันได้รับความเสียหายทันทีในความพยายามในการติดตั้งด้วย 'xxx ได้ปิดโดยไม่คาดคิด' เช่นเมื่อฉันพยายามอัปเดตการพึ่งพาของ Google-services การขุดลงในบันทึกฉันพบลิงค์ที่บอกให้ฉันเพิ่มสิ่งนี้ลงในไฟล์ Manifest

<meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxx~xxxxxx"/>

นี่เป็นเรื่องใหม่และไม่ได้กล่าวถึงในขั้นตอนการตั้งค่าและคั่นระหว่างหน้าที่นี่https://firebase.google.com/docs/android/setupและที่นี่https://developers.google.com/admob/android/interstitial https://developers.google.com/admob/android/interstitial

ฉันใช้เพื่อจัดการกับ ID โฆษณาที่เกี่ยวข้องกับแอปของฉัน INTERSTITIAL_UNIT_ID เท่านั้น ตอนนี้ทั้งสองต้องได้รับการจัดการ นอกเหนือจากการเพิ่มข้างต้นแล้วเอกสารยังสั่งให้เพิ่ม ADMOB_APP_ID ที่นี่ (หมายเลขเดียวกับที่คุณผูกกับโฆษณาAPPLICATION_IDในรหัสรายการใหม่)

MobileAds.initialize(this, ADMOB_APP_ID);

INTERSTITIAL_UNIT_ID และรหัส ADMOB_APP_ID สามารถขุดขึ้นมาได้ในคอนโซล Google AdMob ของคุณ แอพเกมของฉันหยุดให้บริการโฆษณาในการอัปเดตครั้งแรกของการอ้างอิงฐานข้อมูลของฉันและยังคงไม่แสดงโฆษณาโดยให้รหัสข้อผิดพลาด 0 ใน

public void onAdFailedToLoad(int errorCode){...

แม้จะเพิ่มความยุ่งเหยิงทั้งหมดนี้แล้วฉันยังไม่สามารถอัปเดตการพึ่งพาของ Google-services ได้หากไม่มีข้อผิดพลาดในการเริ่มต้นทำงานผิดพลาด ฉันคาดว่าจะติดอยู่ที่บริการ google: 4.0.1 บางครั้ง

แก้ไข 10/24/18: จาก mobileadssdk-advisor+support@google.com หลังจากหลายสัปดาห์ที่ได้รับจดหมายแจ้งว่าไม่ได้รับการแสดงโฆษณาหลังจากอัปเดต:

ขอบคุณที่แบ่งปันบันทึกอุปกรณ์ จากบันทึกดูเหมือนว่าปัญหาที่มีอยู่และนี่คือรายการสำคัญของเราและทีมงานของเรากำลังแก้ไขปัญหาและเกิดขึ้นเฉพาะกับอุปกรณ์ Android O และ P เท่านั้น '

เฉพาะอุปกรณ์ O และ P นั่นเป็นสองเวอร์ชันสุดท้าย O ออกมา 25 กันยายน 2017 Yikes


3
ฉันมีประสบการณ์เช่นนี้เช่นกัน หวังว่า Google จะไม่ทำลายแอปของฉันที่สร้างขึ้นทุกครั้งที่มีการอัปเดต
Patty P

สวัสดีฉันทำให้มันทำงานได้โดยการเพิ่มapply plugin: 'com.google.gms.google-services'build.gradle ของฉัน (ด้วยบริการ google: 4.1.0)
Nicolas Mauti

10

ตามที่ระบุโดย @PSIXO ในความคิดเห็นนี่อาจเป็นปัญหากับ google-services รุ่นอ้างอิง สำหรับฉันเปลี่ยน

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:4.1.0'
    }
}

ถึง

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:4.0.1'
    }
}

ทำงานแล้วอาจมีปัญหากับรุ่น 4.1.0 เพราะฉันเสียเวลาไปหลายชั่วโมงฉันจึงคิดว่าจะเขียนคำตอบนี้


1
ใช่สำหรับฉันมันทำงานได้โดยการเปลี่ยนรุ่นของการสร้างเป็น 4.0.1 อาจเป็นปัญหาการพึ่งพา
Abraham Mathew

4
หลังจากอัปเดตทุกเวอร์ชันเป็นรุ่นล่าสุด (4.2.0) นั่นช่วยแก้ไขปัญหาให้ฉันได้
david72

7

หากคุณกำลังใช้FirebaseUI , ไม่จำเป็นต้องใช้ของFirebaseApp.initializeApp(this);ในรหัสของคุณตามตัวอย่างตัวอย่าง

ตรวจสอบให้แน่ใจว่าได้เพิ่มในbuild -level rootของคุณแล้ว:

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        ...
        classpath 'com.google.gms:google-services:3.1.1'
        ...
    }
}

จากนั้นในไฟล์ Gradle ระดับโมดูลของคุณ:

dependencies {

    ...

    // 1 - Required to init Firebase automatically (THE MAGIC LINE)
    implementation "com.google.firebase:firebase-core:11.6.2"

    // 2 - FirebaseUI for Firebase Auth (Or whatever you need...)
    implementation 'com.firebaseui:firebase-ui-auth:3.1.2'
    ...
}

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

แค่นั้นแหละ. ไม่ต้องการอีกต่อไป


5

คุณต้องเพิ่ม Firebase Gradle buildscript การพึ่งพาในbuild.gradle (ระดับโครงการ)

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

และเพิ่มปลั๊กอิน Firebase สำหรับ Gradle ในแอพ / build.gradle

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

build.gradle will include these new dependencies:
    compile 'com.google.firebase:firebase-database:11.0.4'

ที่มา: Android Studio Assistant


5

วิธีแก้ปัญหาอื่นที่เป็นไปได้ - ลองใช้ Android Studio อื่นถ้าคุณใช้เบต้า ช่วยฉันด้วย ใหม่ Android Studio ไม่ได้เพิ่ม Firebase อย่างถูกต้อง ในกรณีของฉัน 3.3preview

หลังจากการตรวจสอบเพิ่มเติมฉันพบปัญหาคือว่าสตูดิโอ Android ใหม่เริ่มต้นโครงการด้วยบริการ Google รุ่นใหม่กว่าและดูเหมือนว่ามันเป็นปัญหาดั้งเดิม ในฐานะ @Ammar Bukhari แนะนำการเปลี่ยนแปลงนี้ช่วย:

classpath 'com.google.gms: google-services: 4.1.0' -> classpath 'com.google.gms: google-services: 4.0.0'


4

ในกรณีของฉันปลั๊กอินบริการ Google gradle ไม่ได้สร้างvalues.xmlไฟล์ที่ต้องการจากgoogle-services.jsonไฟล์ ไลบรารี Firebase ใช้ไฟล์ค่าที่สร้างขึ้นนี้เพื่อเริ่มต้นเองและปรากฏว่าไม่เกิดข้อผิดพลาดหากไม่พบไฟล์ค่า ตรวจสอบว่ามีไฟล์ค่าอยู่ที่ตำแหน่งต่อไปนี้และเติมด้วยสตริงที่เหมาะสมจากgoogle-sevices.jsonไฟล์ของคุณ:

app/build/generated/res/google-services/{build_type}/values/values.xml

และ / หรือ

app/build/generated/res/google-services/{flavor}/{build_type}/xml/global_tracker.xml

สำหรับรายละเอียดเพิ่มเติมดู: https://developers.google.com/android/guides/google-services-plugin

กรณีเฉพาะของฉันเกิดจากการใช้เครื่องมือ gradle ที่สูงเกินไปสำหรับ Android Studio เวอร์ชันที่ฉันใช้ (เช่นให้แน่ใจว่าคุณเรียกใช้เครื่องมือเกรด v3.2.X-YYY กับ Android Studio v3.2)


4

เราไม่จำเป็นต้องโทรFirebaseApp.initializeApp(this);ด้วยตนเองทุกที่ และเราไม่ควรเกินไป

ฉันเพิ่งเผชิญปัญหาเดียวกันเกี่ยวกับมันและได้รับการแก้ไขที่ไม่คาดคิดและแปลก

จากคำตอบนี้:

ฉันลบออกtools:node="replace"แล้วมันใช้งานได้เหมือนมีเสน่ห์


4

ฉันเดาว่ามีปัญหาความเข้ากันได้กับเวอร์ชันของ google-services และ firebase version

ฉันเปลี่ยนในไฟล์ build.gradle ของโครงการการพึ่งพา

classpath 'com.google.gms: google-services: 4.1.0' ถึง 4.2.0

จากนั้นอัปเดตการสร้าง build.gradle ของโมดูลเป็น:

การใช้งาน 'com.google.firebase: firebase-database: 16.0.6'

การใช้งาน 'com.google.firebase: firebase-core: 16.0.7'

ทุกอย่างทำงานได้อย่างมีเสน่ห์ไม่จำเป็นต้องพิมพ์ FirebaseApp.initializeApp (สิ่งนี้)


ฉันแก้ปัญหาของฉันหลังจากลดระดับ 'com.google.firebase: firebase-core: 16.0.8' เป็น 'com.google.firebase: firebase-core: 16.0.7' ขอบคุณ
Nanda Z

3

สาเหตุที่เกิดขึ้นนี่คือcom.google.gms: google-services version เมื่อฉันใช้4.1.0ฉันพบข้อผิดพลาดเดียวกัน จากนั้นฉันปรับลดรุ่นรุ่น ก่อน

classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.1.0'

หลังจาก

classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:3.2.0'

หวังว่ามันจะแก้ปัญหาข้อผิดพลาด


3

หากคุณเพิ่งอัปเดต Android Studio เป็น 3.3.1 ที่มีปัญหากับ com.google.gms: google-services (ด้านล่าง 4.2.0) การอ้างอิงดังนั้นโปรดอัปเดต com.google.gms: google-services เป็น 4.2.0

dependencies {
    classpath 'com.android.tools.build:gradle:3.3.1'
    classpath 'com.google.gms:google-services:4.2.0'
    }

3

สาเหตุหนึ่งที่ทำให้เกิดเหตุการณ์นี้คือการลืมandroid.permission.INTERNETสิทธิ์เพิ่มAndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

2

สำหรับฉันมันคือการอัพเกรดการพึ่งพาของ com.google.gms: google-services ภายใน build.gradle เป็น

buildscript {
repositories {
    jcenter()
    mavenCentral()
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.3.2'
    classpath 'com.google.gms:google-services:4.2.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

0

แม้ว่าการเตรียมใช้งาน Firebase ด้วยตนเองFirebaseApp.initializeApp(this);จะทำให้ข้อผิดพลาดหายไป แต่ก็ไม่สามารถแก้ไขสาเหตุที่แท้จริงได้ แต่ปัญหาแปลก ๆ บางอย่างที่มาพร้อมกันดูเหมือนจะไม่ได้รับการแก้ไขเช่น

  • FCM ต้องcom.google.android.c2dm.permission.RECEIVEได้รับอนุญาตซึ่งใช้สำหรับ GCM เท่านั้น
  • โทเค็นจะไม่ลงทะเบียนหลังจากส่งการแจ้งเตือนครั้งแรก
  • ไม่ได้รับข้อความ / onMessageReceived () ไม่เคยถูกเรียก

ใช้ปลั๊กอิน Gradle ที่ใหม่กว่า (เช่นปลั๊กอิน Android 2.2.3 และ Gradle 2.14.1) แก้ไขทุกอย่าง (แน่นอนการตั้งค่าจะต้องถูกต้องตามเอกสาร Firebase )


โอ้โหนั่นเป็นข้อมูลที่น่าสนใจ ด้วยปัญหาที่เกิดขึ้นกับ ppl ไม่กี่คนมันก็ยากที่จะบอกว่าถ้าเราได้เห็นสิ่งนี้ บางทีเราควรลองลบมันอีกครั้งและใช้ Gradle เวอร์ชั่นที่ใหม่กว่า
Roy Solberg

0

ปัญหาของฉันไม่ได้รับการแก้ไขด้วยขั้นตอนนี้

FirebaseApp.initializeApp(this); 

ดังนั้นฉันจึงลองอย่างอื่นและตอนนี้ฐานข้อมูลของฉันได้รับการเริ่มต้นสำเร็จแล้ว ลองเพิ่มสิ่งต่อไปนี้ในโมดูลแอปแท่นวาง

BuildScript{
dependencies {..
classpath : "com.google.firebase:firebase-plugins:1.1.5"
    ..}
}

dependencies {...
implementation : "com.google.firebase:firebase-perf:16.1.0"
implementation : "com.google.firebase:firebase-core:16.0.3"
..}

0

คลิกเครื่องมือ> Firebase เพื่อเปิดหน้าต่างผู้ช่วย

คลิกเพื่อขยายหนึ่งในคุณลักษณะที่ระบุไว้ (ตัวอย่างเช่น Analytics) จากนั้นคลิกลิงก์บทช่วยสอนที่มีให้ (ตัวอย่างเช่นบันทึกเหตุการณ์ Analytics)

คลิกปุ่มเชื่อมต่อกับ Firebase เพื่อเชื่อมต่อกับ Firebase และเพิ่มรหัสที่จำเป็นลงในแอปของคุณ

https://firebase.google.com/docs/android/setup


0

ติดตั้ง Firebase ผ่านเครื่องมือ Android Studio ... Firebase ...

ฉันทำการติดตั้งผ่านเครื่องมือในตัวจาก Android Studio (ติดตามเอกสารล่าสุดจาก Firebase) สิ่งนี้ติดตั้งการอ้างอิงพื้นฐาน แต่เมื่อฉันพยายามเชื่อมต่อกับฐานข้อมูลมันจะให้ข้อผิดพลาดที่ฉันต้องเริ่มต้นก่อนเสมอแม้ว่าฉันจะเป็น:

FirebaseApp เริ่มต้นไม่ได้เริ่มต้นในกระบวนการนี้ ตรวจสอบให้แน่ใจว่าได้โทร FirebaseApp.initializeApp (บริบท) ก่อน

ฉันได้รับข้อผิดพลาดนี้ไม่ว่าฉันจะทำอะไร

ในที่สุดหลังจากเห็นความคิดเห็นในคำตอบอื่นฉันได้เปลี่ยนสิ่งต่อไปนี้ใน gradle จากเวอร์ชั่น 4.1.0 เป็น:

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

เมื่อฉันทำอย่างนั้นในที่สุดฉันก็เห็นข้อผิดพลาดที่ช่วยฉัน:

ไม่มีไฟล์ google-services.json ปลั๊กอินบริการของ Google ไม่สามารถทำงานได้หากไม่มี ตำแหน่งที่ค้นหา: C: \ Users \% ชื่อผู้ใช้% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnull \ debug \ google-services.json
C: \ Users \% ชื่อผู้ใช้% \ AndroidStudioProjects \ TxtFwd \ app \ src \ debug \ nullnull \ google-services.json
C: \ Users \% ชื่อผู้ใช้% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnull \ google-services.json
C: \ Users \% ชื่อผู้ใช้% \ AndroidStudioProjects \ TxtFwd \ app \ src \ debug \ google- services.json
C: \ Users \% ชื่อผู้ใช้% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnullDebug \ google-services.json
C: \ Users \% ชื่อผู้ใช้% \ AndroidStudioProjects \ TxtFwd \ app \ google-services.json

นั่นคือปัญหา. ดูเหมือนว่ารุ่น 4.1.0 ไม่ได้ให้ข้อผิดพลาดในการสร้างด้วยเหตุผลบางประการ - ไม่พูดถึงว่าคุณมีไฟล์ google-services.json ที่ขาดหายไป ฉันไม่มีไฟล์ google-services.json ในแอปดังนั้นฉันจึงออกไปและเพิ่มเข้าไป

แต่เนื่องจากนี่เป็นการอัปเกรดซึ่งใช้ฐานข้อมูล firsbase เรียลไทม์ที่มีอยู่ฉันไม่เคยสร้างไฟล์นั้นมาก่อน ฉันไปที่ firebase และสร้างและเพิ่มและแก้ไขปัญหา

เปลี่ยนกลับเป็น 4.1.0

เมื่อฉันค้นพบสิ่งเหล่านี้ทั้งหมดฉันก็เปลี่ยนตัวแปร classpath กลับไปเป็น 4.1.0 และสร้างใหม่และมันก็ล้มเหลวอีกครั้งพร้อมกับข้อผิดพลาดที่ไม่ได้ถูกทำให้เป็นจริง

ปัญหารูท

  • การสร้างด้วย 4.1.0 ไม่ได้ให้ข้อผิดพลาดที่ถูกต้องเมื่อทำการคอมไพล์ล่วงหน้าดังนั้นคุณอาจไม่รู้ว่าเกิดอะไรขึ้น
  • ทำงานกับ 4.1.0 ทำให้เกิดข้อผิดพลาดการเริ่มต้น


0

เปลี่ยนแปลง

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

ถึง

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

ใช้งานได้สำหรับฉัน


การใช้เวอร์ชันล่าสุดต่อไปนี้ช่วยฉันแก้ปัญหาได้ ไม่จำเป็นต้องปรับลดรุ่น :) classpath 'com.android.tools.build:gradle:3.4.2' classpath 'com.google.gms: google-services: 4.3.0'
โกเมน

0

โดยทำตามคำตอบ @Gabriel Lidenor การเริ่มต้นแอพที่มีบริบทไม่ทำงานในกรณีของฉัน ถ้าคุณพยายามสร้าง firebase-app โดยไม่ต้อง google-service.json ดังนั้นก่อนที่จะเริ่มต้นแอป firebase จำนวนใด ๆ ก่อนอื่นต้องเริ่มต้นเป็น;

FirebaseOptions options = new FirebaseOptions.Builder().setApplicationId("APP_ID")
                    .setGcmSenderId("SENDER_ID").build();
FirebaseApp.initializeApp(context, options, "[DEFAULT]");

-1

เราจะต้องเริ่มต้น Firebase ในฟังก์ชั่น onCreate ของ Application Class

 package com.rocks.music.videoplayer;

 import android.app.Application;
 import android.content.Context;

 import com.google.firebase.FirebaseApp;


/**
* Created by ashish123 on 22/8/15.
  */
 public class MyApplication extends Application {

private static MyApplication mInstance;

@Override
public void onCreate() {
    super.onCreate();
    mInstance = this;
    try {
        FirebaseApp.initializeApp(this);
    }
    catch (Exception e) {
    }
}

public static Context getInstance() {
    return mInstance;
}

}

รหัสในไฟล์รายการ: -

  <application
    android:name="com.rocks.music.videoplayer.MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

-1

เหตุผลและวิธีแก้ไข: นี่เป็นข้อผิดพลาดทั่วไปที่คุณจะได้รับเกือบตลอดเวลา เหตุผล: เมื่อคุณรวมโครงการของคุณเข้ากับ Firebase จะเป็นการเพิ่มการพึ่งพา

implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation 'com.google.android.gms:play-services-auth:16.0.1'

และ classpath

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

คุณเพียงแค่ต้องอัปเดตพวกเขา

นี่คือวิธีที่คุณสามารถอัปเดต

ไปที่ gradle sript แล้วทำสิ่งนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.