На каком уровне архитектуры должна работать служба сообщений Firebase. Должен ли это быть уровень данных - PullRequest
0 голосов
/ 16 декабря 2018

Android Studio 3.4 Canary 8

Я создаю приложение, которое использует службу обмена сообщениями Firebase.В моей архитектуре есть уровень представления, домен и уровень данных.

Обычно я помещаю службу обмена сообщениями Firebase в уровень данных, думая, что это именно то, что должно быть.Тем не менее, я мог заставить его работать, так как он падает, когда я пытаюсь синхронизировать файл данных build.gradle.

Мой уровень данных build.gradle У меня есть следующее:

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
    def androidConfig = rootProject.extensions.getByName("ext")

    compileSdkVersion = androidConfig["androidCompileSdkVersion"]

    defaultConfig {
        minSdkVersion androidConfig["androidMinSdkVersion"]
    }

    sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
        }
    }
}

dependencies {
    def dataDependencies = rootProject.ext.dataDependencies
    def dataTestDependencies = rootProject.ext.dataTestDependencies

    implementation dataDependencies.rxjava
    implementation dataDependencies.rxkotlin
    implementation dataDependencies.gson
    implementation dataDependencies.retrofit
    implementation dataDependencies.firebaseCore
    implementation dataDependencies.firebaseMessaging
    implementation dataDependencies.kotlin

    testImplementation dataTestDependencies.robolectric

    implementation project(':domain')
}

sourceCompatibility = "1.6"
targetCompatibility = "1.6"

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

Однако, когда я синхронизирую проект, происходит сбой со следующим сообщением об исключении нулевого указателя.Что происходит, только когда я добавляю плагин com.google.gms.google-services

A problem occurred configuring project ':data'.
> java.lang.NullPointerException

* Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':data'.
    at org.gradle.configuration.project.LifecycleProjectEvaluator.wrapException(LifecycleProjectEvaluator.java:79)
    at 
Caused by: java.lang.NullPointerException

Мой манифест андроида уровня данных:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="me.androidbox.data">

    <application>
        <service android:name=".firebaseservice.Messaging">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>

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