Android Studio Firebase / облачные сообщения

каждый раз, когда я компилирую, появляются эти две ошибки. будет оценена любая помощь.

  1. "реализация 'com.google.firebase: firebase-messaging: 17.3.1'"

  2. "ошибка: пакет com.google.android.gms.gcm не существует"

ниже мои файлы gradle и manifest.

Проект Gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

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


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

allprojects {
    repositories {
        google()
        jcenter()
        maven{
            url "https://maven.google.com"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

App Gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.lrtapp.ardentmap"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.google.firebase:firebase-messaging:17.3.1'
    testImplementation 'junit:junit:4.12'
    implementation 'com.google.firebase:firebase-core:16.0.3'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'me.biubiubiu.justifytext:library:1.1'

    //Google Play Services
    //implementation 'com.google.android.gms:play-services:11.4.0'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    implementation 'com.google.android.gms:play-services-location:15.0.1'
}
apply plugin: 'com.google.gms.google-services'

Файл манифеста

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
    package = "com.lrtapp.ardentmap">

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

    <application
        android:allowBackup = "true"
        android:icon = "@drawable/erlogo"
        android:label = "EaseRoute"
        android:roundIcon = "@mipmap/ic_launcher_round"
        android:supportsRtl = "true"
        android:theme = "@style/AppTheme">
        <meta-data
            android:name = "com.google.android.geo.API_KEY"
            android:value = "AIzaSyALC_Pis5w391INiqcvnXO7dipxuMP0-JA" />
        <meta-data
            android:name = "com.google.android.gms.version"
            android:value = "@integer/google_play_services_version" />

        <activity android:name = ".MainActivity">
            <intent-filter>
                <action android:name = "android.intent.action.MAIN" />

                <category android:name = "android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name = ".MapActivity" />
        <activity android:name = ".About" />
        <activity android:name = ".Contact" />
        <activity android:name = ".Videos"></activity>

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

        <service android:name = ".MyFirebaseIdService">
            <intent-filter>
                <action android:name = "com.google.firebase.INSTANCE_ID_EVENT"/>
            </intent-filter>
        </service>



        <meta-data
            android:name = "com.google.firebase.messaging.default_notification_color"
            android:resource = "@color/colorAccent"/>
    </application>

</manifest>

Заранее спасибо тем, кто поможет !!

1
0
285
1

Ответы 1

1) Не уверен, в чем ваша ошибка, но ваши зависимости Firebase должны быть той же версии. Вы используете 17.3.1 для обмена сообщениями firebase, но ваше ядро ​​firebase - 16.0.3.

2) Вы не добавили зависимость GCM в gradle:

implementation 'com.google.android.gms:play-services-gcm:15.0.1'

Но самое главное, почему вы хотите реализовать обмен сообщениями firebase и GCM в одном приложении? Google настоятельно рекомендует не делать этого. Кроме того, GCM закрывается в апреле 2019 года.

это вроде нормально, потому что этот проект предназначен только для моих школьных исследований, которые подходят для семестра.

Zeke 19.09.2018 18:21

он действительно удалил ошибку gcm, затем я получаю эту другую ошибку здесь. Понятно почему, но наши консультанты дали нам этот проект, который на самом деле не имеет отношения к моей степени.

Zeke 19.09.2018 18:59

вот ошибка. ошибка: метод sendNotification в классе FirebaseMessagingService нельзя применить к данным типам; обязательно: String, String found: Причина уведомления: фактический и формальный списки аргументов различаются по длине в sendNotification (remoteMessage.getNotification ());

Zeke 19.09.2018 18:59

параметр для sendNotification должен быть remoteMessage.getData (). get ("message");

nupadhyaya 19.09.2018 19:07

должно быть так? sendNotification (remoteMessage.getData (). get ("Уведомление получено"));

Zeke 19.09.2018 19:21

нет .. remoteMessage.getData (). get ("сообщение"); . Уведомление - это json. У него есть клавиша «сообщение». Или вы можете отправить sendNotification ("привет, мир");

nupadhyaya 19.09.2018 19:23

я набрал его, и произошла ошибка: метод sendNotification в классе FirebaseMessagingService не может быть применен к данным типам; требуется: строка, строка найдена: строка причина: фактические и формальные списки аргументов различаются по длине

Zeke 19.09.2018 19:27

он ожидает другую строку. sendNotification («привет», «привет, мир»);

nupadhyaya 19.09.2018 19:28

Мне очень жаль, но я совсем не программист. Я просто изучаю цифровое искусство в ИТ-школе, а затем один из членов нашей группы решил предоставить нам мобильное приложение в качестве дополнительного требования к нашей диссертации.

Zeke 19.09.2018 19:29

Другие вопросы по теме