Как устранить проблему «Не удалось инициализировать FirebaseApp по умолчанию, поскольку не найдены параметры по умолчанию» - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь использовать Firebase Cloud Messaging для своего приложения, и я закодировал следование руководству "https://firebase.google.com/docs/cloud-messaging/android/client", чтобы получить устройство заняло

MainActivity:

FirebaseApp.initializeApp(this);

        FirebaseInstanceId.getInstance().getInstanceId()
                .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
                    @Override
                    public void onComplete(@NonNull Task<InstanceIdResult> task) {
                        if (!task.isSuccessful()) {
                            Log.w("FCM", "getInstanceId failed", task.getException());
                            return;
                        }

                        // Get new Instance ID token
                        String token = task.getResult().getToken();

                        // Log and toast
                        String msg = getString(R.string.msg_token_fmt, token);
                        Log.d("FCM", msg);
                        Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
                    }
                });

app.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.triaxlogistic.myapplication"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        useLibrary 'org.apache.http.legacy'

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:support-vector-drawable:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.google.android.libraries.places:places:1.0.0'
    implementation 'com.facebook.android:account-kit-sdk:5.0.0'
    implementation 'com.google.firebase:firebase-core:16.0.6'
    implementation 'com.google.firebase:firebase-messaging:18.0.0'
    implementation 'com.android.volley:volley:1.1.0'
    implementation 'net.gotev:uploadservice:2.1'
    testImplementation 'junit:junit:4.12'
core:3.0.2'

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

AndroidManifest

        <service android:name=".utilities.MyFirebaseMessagingService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>

MyFirebaseMessagingService

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    private static final String TAG = "MyFirebaseMsgService";

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.d(TAG, "From: " + remoteMessage.getFrom());
        //TODO: xu ly thong bao co du lieu
        if (remoteMessage.getData().size() > 0) {
            sendNotification(remoteMessage.getData());
        }
        //TODO: xu ly thong bao tin thong thuong
        if (remoteMessage.getNotification() != null) {
            sendNotificationBody(remoteMessage.getNotification().getBody());
        }
    }

    @Override
    public void onNewToken(String token) {
        Log.d(TAG, "Refreshed token: " + token);

        sendRegistrationToServer(token);
    }
....

Но когда я запускаю тест на своем мобильном устройстве, выдается проблема в журнале: "D / FirebaseApp:Не удалось инициализировать FirebaseApp по умолчанию, поскольку не найдены параметры по умолчанию.Обычно это означает, что com.google.gms: google-services не был применен к вашему проекту gradle.E / AndroidRuntime: ФАКТИЧЕСКОЕ ИСКЛЮЧЕНИЕ: основной Процесс: com.triaxlogistic.myapplication, PID: 32022 java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {com.triaxlogistic.myapplication / com.triaxlogistic.myapplication.MainActivity}: java.lang.IllegalStateException: FirebaseApp по умолчанию не инициализируется в этом процессе com.triaxlogistic.myapplication.Обязательно сначала вызовите FirebaseApp.initializeApp (Context). "

Я не знаю, что я сделал не так, хотя я добавил Firebase в свое приложение для Android в своем проекте на консоли Firebase и заполнил значениеимя пакета, значение отладочного сертификата отладки SHA1, загрузите последний файл конфигурации json и скопируйте в мой проект в Android-студии. Как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...