Использование облачной службы Firebase при получении ошибки:AppProcessDebugGoogle Service- не найден соответствующий клиент для имени пакета
Я использую Firebase Cloud Messaging для push-уведомлений.
Я выполнил все инструкции официального сайта и успешно добавил все требования. Но я получаю сообщение об ошибке и не могу найти решение.
Моя ошибка:
Error:Execution failed for task ':app:processInmemoryDebugGoogleServices'.
> No matching client found for package name 'in.voiceme.app.voiceme.inmemory'
где я добавил google-service.json см.
Структура моего проекта выглядит как
Я уже добавил в зависимости:
compile 'com.google.firebase:firebase-messaging:9.4.0'
apply plugin: 'com.google.gms.google-services'
добавлен путь к классу:
buildscript {
repositories {
jcenter()
}
dependencies {
*classpath 'com.android.tools.build:gradle:2.1.3'*
*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
}
}
Основанное на моем приложении Build.Gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "in.voiceme.app.voiceme"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
inmemory {
applicationId "in.voiceme.app.voiceme.inmemory"
}
live {
applicationId "in.voiceme.app.voiceme"
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:design:24.2.0'
compile 'com.google.firebase:firebase-messaging:9.0.0'
}
apply plugin: 'com.google.gms.google-services'
Кто-нибудь может дать мне решение об этой ошибке?
2 ответа
Поскольку в сборке "inmemory" используется другое имя пакета (applicationId), чем у других, вам необходимо изменить google-services.json
файл или, возможно, предоставить несколько его копий. Документация для подключаемого модуля Google Services описывает структуру папок для различных типов сборки и разновидностей.
Если вам не нужны разные настройки проекта для типов и вариантов сборки приложений, возможно, можно использовать один файл и добавить запись в client
массив в файле. Добавленная запись будет указывать имя пакета in.voiceme.app.voiceme.inmemory
, См. Связанный документ для более подробной информации, в частности, в разделе " Обработка файла JSON".
Этот ответ на связанный вопрос также будет полезен.
Я решил эту проблему благодаря @qbix
for productFlavors
inmemory {
applicationId "in.voiceme.app.voiceme.inmemory"
}
Need to create different `google-service.json` using firebase console
and copy this json file into `inmemory` package.
я обнаружил, что проблема была в другом pakageName, не найденном google-service.json, файл jak хранит pakageName, когда мы создаем его из консоли Firebase.
provide new `google-service.json` to inmemory package is solution for that issue. thanks again @qbix