FirebaseApp mặc định không được khởi tạo


234

Chúng tôi đang thấy một vài ngoại lệ với thông báo Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.trong ứng dụng Android của chúng tôi, trong đó chúng tôi vừa thêm Firebase Remote Config.

Theo dõi ngăn xếp như sau:

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)

Đây là phiên bản 9.6.1 và chúng tôi cũng đang sử dụng các thành phần Firebase khác:

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"

Như tôi có thể thấy từ tài liệuJavadoc, chúng ta không nên thực hiện bất kỳ khởi tạo thủ công nào trong trường hợp của chúng tôi.

Ngoại lệ xảy ra trên Android 4-6 trên nhiều thiết bị.

Biên tập:

Tôi thấy câu hỏi này được chú ý một chút. Tôi nghĩ rằng lời giải thích này có thể thú vị đối với một số bạn: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html


1
Hãy thử tìm kiếm SO cho "FirebaseApp mặc định không được khởi tạo". Có rất nhiều trường hợp khác nhau có thể gây ra điều này.
Doug Stevenson

Vâng, tôi có. Không tìm thấy bất kỳ trường hợp phù hợp, vì vậy đó là lý do tại sao tôi hỏi. Có thể đã đề cập rằng trong Q.
Roy Solberg

Bạn có thể tạo một ví dụ tối thiểu để tái tạo vấn đề này và hiển thị bảng kê khai, build.gradle và Activity không?
Doug Stevenson

Bạn có khởi tạo Firebase trong ContentProvider hoặc trong lớp Ứng dụng của mình không?
Andrew Kelly

2
Tôi gặp vấn đề tương tự cho một tỷ lệ nhỏ người chơi. Sử dụng 10.0.1 mới nhất
Dmitry

Câu trả lời:


136

Tôi đã có vấn đề tương tự một thời gian trước đây.

Bạn đang cố gắng lấy một phiên bản của Firebase mà không khởi tạo nó. Vui lòng thêm dòng mã này trước khi bạn cố gắng lấy phiên bản của Firebase:

FirebaseApp.initializeApp(this);

3
@Henrik Chỉ trong ExtendedApplication.onCreate ().
Roy Solberg

5
Chà, điều này không hiệu quả với tôi (vẫn còn một vài sự cố trong sản xuất). Tôi sẽ thử thêm mã init vào Activity đầu tiên của tôi onCreate ().
Sébastien

77
Điều quan trọng cần lưu ý là bên cạnh việc khởi tạo này, các dịch vụ google phải được áp dụng như sau:apply plugin: 'com.google.gms.google-services'
pamobo0609

2
trong tập tin nào tôi phải thêm MainActivity.java này?
abhit

23
Đối với tôi phiên bản com.google.gms: google-services: 4.1.0 đã bị sập nhưng com.google.gms: google-services: 4.0.1 đã hoạt động
Igor ordaš

345

Hãy chắc chắn để thêm vào build.gradle cấp gốc của bạn

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

Sau đó, trong tệp Gradle cấp mô-đun của bạn (thường là ứng dụng / build.gradle), hãy thêm dòng 'áp dụng plugin' ở dưới cùng của tệp để bật 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'

Như đã nói trong tài liệu . Tôi đã có ngoại lệ như trong một câu hỏi ở trên khi quên thêm phần này vào các tập tin lớp.


2
Kiểm tra và kiểm tra. Chỉ cần xác minh rằng chúng tôi các tập tin Gradle như mô tả. Tôi nên đề cập rằng mã hoạt động tốt cho nhiều người dùng.
Roy Solberg

Nó có thể là bạn đang trộn các phiên bản thư viện của bạn. Tôi gặp vấn đề tương tự khi tôi thử sử dụng biên dịch 'com.google.firebase:firebase-core:9.8.0' nên tôi đã thay đổi compile 'com.google.firebase:firebase-core:9.6.0'để phù hợp với các thư viện khác của mình. Câu trả lời ban đầu Bạn đang trộn các phiên bản SDK của Firebase. như đã giải thích
crakama

3
'áp dụng plugin:' com.google.gms.google-services 'hoạt động với tôi.
Cá đá

7
Không giúp gì trong trường hợp của tôi. Và vấn đề ảnh hưởng đến tỷ lệ người chơi cực kỳ nhỏ. Vì vậy, rất có thể đó không phải là vấn đề với mã hoặc cài đặt, nhưng với khả năng tương tác với các dịch vụ chơi được cài đặt n thiết bị của người dùng :-(
Dmitry

2
cảm ơn :) Tôi quên thêm dòng này trong build.gradle: áp dụng plugin: 'com.google.gms.google-services'
Richi

126

Có vẻ như google-services:4.1.0có một vấn đề. Hoặc hạ cấp nó xuống

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

hoặc nâng cấp nó lên

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 */
}

Hy vọng nó giúp


9
Nó làm việc cho tôi là tốt. Có vẻ như có một số vấn đề với 4.1.0
iuq

Tôi cũng gặp vấn đề này và cũng phát hiện ra rằng đã có bản cập nhật trong Android Studio 3.2 cho Công cụ xây dựng SDK Android (Công cụ -> Trình quản lý SDK -> Công cụ SDK), áp dụng bản cập nhật này cho tôi sử dụng classpath 'com.google.gms:google-services:4.1.0'lại. YMMV.
IainCastyham

2
ồ, thực sự đã dành thời gian hơn 2 tuần để thực hiện công việc này và tất cả những gì tôi phải làm là hạ cấp từ 4.1.0 xuống 4.0.0?!?!?!?! Cảm ơn bạn rất nhiều
Oliver Spryn

4
theo trình theo dõi vấn đề sẽ được sửa trong 4.2.0
kuelye

Tôi vừa hạ cấp com.google.gms: google-services: 4.1.0 xuống om.google.gms: google-services: 4.0.0 và nó hoạt động. Nó đã cứu ngày của tôi.
Anil

51

Tôi đã thiếu dòng dưới đây trong tệp ứng dụng / build.gradle của tôi

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

và một khi làm sạch dự án và chạy lại. Điều đó đã sửa nó cho tôi.


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

Có vấn đề. thay vì sử dụng:

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

15

Điều đầu tiên bạn cần thêm com.google.gms: google-services: xxx ở cấp độ gốc 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
}

}

Sau đó, bạn cần áp dụng plugin: 'com.google.gms.google-services' tại 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'

và nếu bạn vẫn gặp sự cố thì bạn cần thêm

FirebaseApp.initializeApp(this);

ngay trước khi bạn gọi

FirebaseInstanceId.getInstance().getToken();

12

Sau khi cập nhật các phụ thuộc khác nhau, tôi đã gặp lỗi Crashlytics trong quá trình biên dịch, 'Crashlytics đã tìm thấy khóa API không hợp lệ: null. Kiểm tra plugin Crashlytics để đảm bảo rằng ứng dụng đã được thêm thành công! Liên hệ với support@foven.io để được hỗ trợ. ' Một phản hồi không tự động mà tôi nhận được từ các lần thử lặp lại với support@foven.io lỗi này dẫn bạn đến đó là Fabric và Crashlytics là các nhóm riêng biệt để họ không thể giúp tôi. Tôi đã tránh triển khai lớp Fabric bổ sung cho Crashlytics và không thể lấy khóa mới từ trang Fabric hoặc thậm chí để trang web nhận ra tôi. Khi cố gắng khắc phục điều này bằng cách xóa Crashlytics khỏi mã của tôi, tôi đã nhận được 'FirebaseApp mặc định không được khởi tạo trong quy trình này com.example.app. Đảm bảo gọi FirebaseApp.initializeApp (Ngữ cảnh) trước khi gặp sự cố.

Tôi chưa bao giờ phải thêm dòng khởi tạo 'FirebaseApp.initializeApp (cái này)', và thực tế nó đã nhận xét. Tài liệu thậm chí còn đề cập đến việc không cần điều này nếu chỉ sử dụng Firebase cho một hoạt động. Thêm nó không có sự khác biệt, vẫn có lỗi giết chết chạy.

Hóa ra điều gây ra các lỗi tối nghĩa mới là sự phụ thuộc vào dịch vụ google được cập nhật. Hiện tại tôi không có nhiều thời gian để cố gắng sửa các lỗi shotgun mà sự phụ thuộc mới gây ra, vì vậy cho đến khi ai đó đưa ra giải pháp tôi sẽ sử dụng phiên bản cũ. Bên cạnh sự cố khởi tạo kỳ lạ, phiên bản mới có thể buộc Fabric đối với người dùng Crashlytics. Người dùng cũng bị buộc quay lại phiên bản phụ thuộc cũ cho điều này: Crashlytics đã tìm thấy khóa API không hợp lệ: null. sau khi cập nhật 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

EDIT 10/17/18: Sau khi cập nhật lại các phụ thuộc sau

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

Tôi đã gặp sự cố ngay lập tức khi thử cài đặt với 'xxx đã đóng bất ngờ', giống như khi tôi thử cập nhật phụ thuộc dịch vụ google. Đi sâu vào nhật ký tôi tìm thấy một liên kết hướng dẫn tôi thêm phần này vào bảng kê khai

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

Đây là một tính năng mới và không được đề cập trong phần hướng dẫn cài đặt và quảng cáo xen kẽ tại đây https://firebase.google.com/docs/android/setup và tại đây https://developers.google.com/admob/android/interstitial .

Tôi đã từng chỉ phải xử lý một ID liên quan đến quảng cáo cho ứng dụng của mình, INTERSTITIAL_UNIT_ID. Bây giờ hai cần phải được xử lý. Bên cạnh bổ sung trên, tài liệu hướng dẫn thêm ADMOB_APP_ID tại đây (cùng số bạn liên kết với quảng cáo.APPLICATION_ID trong mã bảng kê khai mới)

MobileAds.initialize(this, ADMOB_APP_ID);

Các id INTERSTITIAL_UNIT_ID và ADMOB_APP_ID có thể được đào lên trong bảng điều khiển Google AdMob của bạn. Ứng dụng trò chơi của tôi đã ngừng phân phát quảng cáo trên bản cập nhật đầu tiên của tôi về các phụ thuộc của căn cứ hỏa lực và vẫn không phục vụ quảng cáo, đưa ra mã lỗi 0 trong

public void onAdFailedToLoad(int errorCode){...

Ngay cả sau khi tất cả sự lộn xộn này được thêm vào, tôi vẫn không thể cập nhật sự phụ thuộc của dịch vụ google mà không gặp sự cố khởi chạy lỗi. Tôi hy vọng sẽ bị mắc kẹt tại google-services: 4.0.1 một thời gian.

EDIT 10/24/18: Từ Mobileadssdk-advisor+support@google.com sau nhiều tuần tương ứng về việc không nhận được quảng cáo phục vụ sau khi cập nhật:

'Cảm ơn đã chia sẻ nhật ký thiết bị. Từ nhật ký, có vẻ như sự cố đã xảy ra và đây là trong danh sách ưu tiên của chúng tôi và nhóm của chúng tôi đang khắc phục sự cố và điều này chỉ xảy ra trên các thiết bị Android O và P. '

Chỉ có thiết bị O và P? Đó là hai phiên bản cuối cùng, O ra mắt ngày 25 tháng 9 năm 2017. Yike.


3
Tôi đã trải nghiệm điều này chính xác là tốt. Mong muốn Google sẽ không phá vỡ các bản dựng ứng dụng của tôi mỗi khi họ cập nhật.
Patty P

Xin chào, tôi làm cho nó hoạt động bằng cách thêm apply plugin: 'com.google.gms.google-services'vào build.gradle của tôi (với google-services: 4.1.0)
Nicolas Mauti

10

Như @PSIXO đã đề cập trong một bình luận, đây có thể là vấn đề với phiên bản phụ thuộc của dịch vụ google. Đối với tôi thay đổi,

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

đến

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

đã làm việc. Có thể có một số vấn đề với phiên bản 4.1.0. Bởi vì tôi đã lãng phí nhiều giờ cho việc này, tôi nghĩ viết nó như một câu trả lời.


1
vâng đối với tôi nó hoạt động bằng cách thay đổi phiên bản xây dựng thành 4.0.1. Nó có thể là một số vấn đề phụ thuộc
Abraham Mathew

4
Sau khi cập nhật tất cả các phiên bản mới nhất (4.2.0), điều đó đã giải quyết vấn đề cho tôi
david72

7

Nếu bạn đang sử dụng FirebaseUI , không cần của FirebaseApp.initializeApp(this);trong mã của bạn theo mẫu .

Hãy chắc chắn để thêm vào build.gradle cấp gốc của bạn :

buildscript {

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

Sau đó, trong tệp Gradle cấp mô-đun của bạn :

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'

Đó là nó. Không cần thêm.


5

Bạn cần thêm phụ thuộc bản dựng Firebase Gradle trong build.gradle (cấp dự án)

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

và thêm plugin Firebase cho Gradle trong ứng dụng / 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'

Nguồn: Trợ lý Android Studio


5

Một giải pháp khả thi khác - hãy thử Android Studio khác nếu bạn đang sử dụng một số betas. Giúp tôi với. Android Studio mới chỉ đơn giản là không thêm Firebase đúng cách. Trong trường hợp của tôi 3,3 lần xem

Sau khi điều tra thêm, tôi thấy vấn đề là studio Android mới bắt đầu dự án với phiên bản Google Services mới hơn và có vẻ như đó là vấn đề ban đầu. Như @Ammar Bukhari đề xuất thay đổi này đã giúp:

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


4

Trong trường hợp của tôi, plugin lớp Google Services không tạo values.xmltệp được yêu cầu từ google-services.jsontệp. Thư viện Firebase sử dụng tệp giá trị được tạo này để tự khởi tạo và có vẻ như nó không gây ra lỗi nếu không tìm thấy tệp giá trị. Kiểm tra xem tệp giá trị tồn tại ở vị trí sau và được điền với các chuỗi thích hợp từ google-sevices.jsontệp của bạn :

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

và / hoặc

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

Để biết thêm chi tiết, hãy xem: https://developers.google.com/android/guides/google-service-plugin

Trường hợp cụ thể của tôi là do sử dụng phiên bản công cụ phân cấp quá cao so với phiên bản Android Studio mà tôi đang chạy (tức là đảm bảo bạn chạy các công cụ cấp v3.2.X-YYY với Android Studio v3.2).


4

Chúng tôi không cần phải gọiFirebaseApp.initializeApp(this); bất cứ nơi nào bằng tay. và chúng ta không nên quá.

Tôi chỉ phải đối mặt với vấn đề tương tự về nó và nhận được giải pháp bất ngờ và kỳ lạ.

Từ câu trả lời này:

Tôi đã loại bỏ tools:node="replace"và nó hoạt động như bùa mê.


4

Tôi đoán có vấn đề tương thích với phiên bản google-services và phiên bản firebase.

Tôi đã thay đổi trong tệp build.gradle của Project, phần phụ thuộc

classpath 'com.google.gms: google-services: 4.1.0' đến 4.2.0

và sau đó cập nhật các phụ thuộc build.gradle của mô-đun thành:

triển khai 'com.google.firebase: firebase-cơ sở dữ liệu: 16.0.6'

triển khai 'com.google.firebase: firebase-core: 16.0.7'

Mọi thứ hoạt động như một bùa mê, không cần phải gõ FirebaseApp.initializeApp (cái này);


tôi giải quyết vấn đề của mình sau khi hạ cấp 'com.google.firebase: firebase-core: 16.0.8' thành 'com.google.firebase: firebase-core: 16.0.7', cảm ơn
Nanda Z

3

Lý do xảy ra điều này là com.google.gms: phiên bản google-services . Khi tôi đang sử dụng 4.1.0 , tôi đã gặp phải lỗi tương tự. Sau đó tôi hạ cấp phiên bản. Trước

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

Sau

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

Hy vọng, nó sẽ giải quyết được lỗi.


3

Nếu gần đây bạn cập nhật Android Studio của mình lên 3.3.1 có vấn đề với phụ thuộc com.google.gms: google-services (Dưới 4.2.0), vì vậy, vui lòng cập nhật com.google.gms: google-services lên 4.2.0.

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

3

Một trong những lý do của việc này xảy ra có thể là quên thêm android.permission.INTERNETquyền trongAndroidManifest.xml

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

2

với tôi đó là nâng cấp các phụ thuộc của com.google.gms: google-services bên trong 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

Mặc dù khởi tạo thủ công Firebase bằng cách FirebaseApp.initializeApp(this);làm cho lỗi biến mất, nhưng nó không khắc phục được nguyên nhân gốc, một số vấn đề kỳ lạ xuất hiện cùng nhau dường như không được giải quyết, chẳng hạn như

  • FCM yêu cầu sự com.google.android.c2dm.permission.RECEIVEcho phép chỉ dành cho GCM
  • mã thông báo sẽ không được đăng ký sau khi thông báo đầu tiên được gửi
  • tin nhắn không nhận được / onMessageReceured () không bao giờ được gọi,

Sử dụng plugin Gradle mới hơn (ví dụ: plugin Android 2.2.3 và Gradle 2.14.1) đã sửa mọi thứ. (Tất nhiên thiết lập phải chính xác theo tài liệu Firebase )


Whoa, đó là một số thông tin thú vị. Với vấn đề xảy ra với rất ít người, thật khó để nói nếu chúng ta đã thấy bất kỳ điều này. Có lẽ chúng ta nên thử loại bỏ nó một lần nữa và sử dụng các phiên bản Gradle mới hơn.
Roy Solberg

0

Vấn đề của tôi không được giải quyết với thủ tục này

FirebaseApp.initializeApp(this); 

Vì vậy, tôi đã thử một cái gì đó khác và bây giờ căn cứ hỏa lực của tôi đã được khởi tạo thành công. Hãy thử thêm phần sau trong module module.gradle

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

Nhấp vào Công cụ> Firebase để mở cửa sổ Trợ lý.

Nhấp để mở rộng một trong các tính năng được liệt kê (ví dụ: Analytics), sau đó nhấp vào liên kết hướng dẫn được cung cấp (ví dụ: Đăng nhập một sự kiện Analytics).

Nhấp vào nút Kết nối với Firebase để kết nối với Firebase và thêm mã cần thiết vào ứng dụng của bạn.

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


0

Đã cài đặt Firebase qua Android Studio Tools ... Firebase ...

Tôi đã cài đặt thông qua các công cụ tích hợp từ Android Studio (theo các tài liệu mới nhất từ ​​Firebase). Điều này đã cài đặt các phụ thuộc cơ bản nhưng khi tôi cố gắng kết nối với cơ sở dữ liệu, nó luôn báo cho tôi lỗi mà tôi cần gọi khởi tạo trước, mặc dù tôi đã:

FirebaseApp mặc định không được khởi tạo trong quá trình này. Đảm bảo gọi FirebaseApp.initializeApp (Ngữ cảnh) trước.

Tôi đã nhận được lỗi này cho dù tôi đã làm gì.

Cuối cùng, sau khi thấy một bình luận trong một trong những câu trả lời khác, tôi đã thay đổi những điều sau đây trong lớp của tôi từ phiên bản 4.1.0 thành:

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

Khi tôi làm điều đó, cuối cùng tôi đã thấy một lỗi giúp tôi:

Tệp google-services.json bị thiếu. Plugin Google Services không thể hoạt động mà không có nó. Vị trí đã tìm kiếm: C: \ Users \% tên người dùng% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnull \ debug \ google-services.json
C: \ Users \% tên người dùng% \ AndroidStudioProjects \ TxtFwd \ app \ src \ debug \ null \ google-services.json
C: \ Users \% tên người dùng% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnull \ google-services.json
C: \ Users \% tên người dùng% \ AndroidStudioProjects \ TxtFwd \ app \ src \ debug \ google- services.json
C: \ Users \% username% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnullDebug \ google-services.json
C: \ Users \% tên người dùng% \ AndroidStudioProjects \ TxtFwd \ app \ google-services.json

Đó chính là vấn đề. Có vẻ như phiên bản 4.1.0 không có lỗi xây dựng vì một số lý do - không đề cập đến việc bạn có một tệp google-services.json bị thiếu. Tôi không có tệp google-services.json trong ứng dụng của mình nên tôi đã ra ngoài và thêm nó.

Nhưng vì đây là bản nâng cấp sử dụng cơ sở dữ liệu Firsbase thời gian thực nên tôi chưa bao giờ phải tạo tệp đó trong quá khứ. Tôi đã đi đến firebase và tạo ra nó và thêm nó và nó đã khắc phục vấn đề.

Thay đổi trở lại 4.1.0

Khi tôi phát hiện ra tất cả những điều này thì tôi đã thay đổi biến classpath trở lại (thành 4.1.0) và xây dựng lại và nó lại bị lỗi với lỗi mà nó chưa được kích hoạt.

Vấn đề gốc

  • Xây dựng với 4.1.0 không cung cấp cho bạn một lỗi hợp lệ khi tiền biên dịch để bạn có thể không biết chuyện gì đang xảy ra.
  • Chạy với 4.1.0 gây ra lỗi khởi tạo.


0

thay đổi

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

đến

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

Làm việc cho tôi


Sử dụng các phiên bản mới nhất sau đây đã giúp tôi giải quyết vấn đề. Không cần hạ cấp :) classpath 'com.android.tools.build:gradle:3.4.2' classpath 'com.google.gms: google-services: 4.3.0'
garnet

0

Bằng cách làm theo câu trả lời của @Gabriel Lidenor, việc khởi tạo ứng dụng với ngữ cảnh không hoạt động trong trường hợp của tôi. Điều gì xảy ra nếu bạn đang cố gắng tạo ứng dụng firebase mà không có google-service.json? Vì vậy, trước khi khởi tạo bất kỳ số lượng ứng dụng firebase nào, trước tiên cần phải khởi tạo như;

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

-1

Chúng ta sẽ phải khởi tạo Firebase trong chức năng onCreate của Lớp ứng dụng.

 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;
}

}

Mã trong tệp kê khai: -

  <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

Lý do và giải pháp: Đây là lỗi phổ biến bạn sẽ nhận được hầu hết thời gian. Lý do: khi bạn tích hợp dự án của mình với Firebase, nó sẽ thêm các phụ thuộc

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

và classpath

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

bạn chỉ cần cập nhật chúng

Đây là cách bạn có thể cập nhật

đi đến lớp sript và làm điều này

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.