Контекст:
Я пытаюсь настроить Google Analytics для своего приложения. (имея 4 пользовательских buildTypes
и более чем несколькоproductFlavors
)
Он работает нормально, когда я выбираю для Build Variant
которого applicationId
установлено значение com.my.app.package.name
(имя пакета, используемое при созданииgoogle-services.json
). Но другие мои ароматы имеют разные идентификаторы применения.
Я последовал за официальным инструктором, чтобы настроить его.
Ошибка, которую я получаю, когда выбран любой другой вариант сборки Build Variants Tab
(который отличается applicationId
(имя пакета)), выглядит следующим образом:
Ошибка: не удалось выполнить задачу ': app: processAllcategoriesDebugfreeGoogleServices'.
Не найдено подходящего клиента для имени пакета 'com.my.app.package.name.debug'
Объяснение сообщения об ошибке:
В названии задачи в сообщении об ошибке выше Debugfree
мой обычай buildType
и Allcategories
один из моих productFlavors
.
Я понимаю ошибку и знаю, что имя пакета отличается от того, которое я использовал при создании json, но это то, что я пытаюсь обойти.
Проблема:
Теперь они google-services.json
находятся в app
папке, и, следовательно, я не могу выделить их для каждого продукта, поместив их в папку с исходным набором продуктов.
Вопросов:
- Мой кастом
byildType
для отладки суффиксов.debug
кapplicationId
(имя пакета). Есть ли способ, которым я могу заставить это работать с тем, уgoogle-services.json
которого есть мой выпускapplicationId
(то есть без суффикса.debug
) - Есть ли способ настроить несколько вариантов продукта в одном
google-services.json
файле, не используя отдельные файлы и задачи, чтобы скопировать нужный файл вapp
папку. Я знаю, что это можно сделать, используя,task
как указано в этом посте . Существует ли более простой способ иметь один файл или выбрать нужный файл в зависимости от конфигурации Gradle? - Я вижу, что
package_name
полеgoogle-services.json
имеет имя пакетаcom.my.app.package.name
. Могу ли я добавить несколько имен пакетов вручную, чтобы работать для всех вариантов сборки? Если да, то как это сделать? Не удалось найти никаких инструкций в документации.
источник
Ответы:
Проверьте название пакета в вашем google-services.json, оно должно совпадать с именем вашего пакета в вашем приложении.
пример
В этом случае моим локальным именем пакета является com.my.app.package.name, поэтому я также изменил имя пакета в google-services.json на свое локальное имя пакета.
источник
Нашел это:
Источник
Источник 2
источник
Не найдено подходящего клиента для имени пакета «com.tf». Я уверен, что «имя_пакета» в google-services.json не соответствует вашему «applicationId» в граде приложения.
приложение Gradle:
Google-services.json
Решение : Просто убедитесь, что
package_name
иapplicationId
должно быть одинаковым.источник
application id
приложении Gradle прибил егоубедитесь, что имя вашего пакета в файле "google-services.json" совпадает с именем пакета вашего приложения.
источник
Я нашел решение:
Мы должны создать два «приложения» в проекте Firebase, а затем мы можем загрузить файл JSON из любого приложения (я скачал из ароматизированного приложения). Он будет содержать данные для обоих приложений. Мы можем просто скопировать файл json в корневой каталог приложения.
Источник: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html
источник
Вы должны поместить
google-services.json
вapp/
каталог. И для каждого типа сборки вapp/src
папке должен быть соответствующий директор .Например, если у вас есть релиз и отладка:
Во всех файлах google-services.json вы должны указать правильный
package_name
тип сборки.Например, внутри debug dir должно быть
{com.myapp}.debug
источник
"client"
массиве (добавить запятую между элементами) и изменить только"package_name"
значение нового элемента, чтобы включить.debug
суффикс. Затем восстановите. У меня это работало на AS 2.3.3.Эта ошибка возникает, когда в ваш проект загружен файл Json Служб Google, имя пакета которого не совпадает с именем пакета вашего проекта .
Недавно переименовали название пакета проекта?
Он обновляет все классы, но не Gradle File . Так что проверьте правильность имени вашего пакета в вашем Gradle, а также, возможно, и Manifest.
источник
Делай ниже шаг.
1). Проверьте
applicationId
вgradle
файле уровня приложения ,2). Проверьте
package_name
в вашемgoogle-services.json
файле,3). Проверьте
package
в вашемAndroidManifest
файлеи для полного подтверждения укажите имя каталога вашего рабочего пакета, т. е. ("com.example.app") также то же самое.
источник
package
манифест (и все файлы во всех пакетах), так какapplicationId
изменится идентификатор приложения.Прежде всего, добавьте суффикс к пакету приложения в Gradle:
Это приведет к тому, что ваш пакет будет назван
Затем перейдите в Firebase под вашим текущим проектом и добавьте в него еще одно приложение для Android с этим именем пакета.
Затем замените существующий файл google-services.json на новый, созданный вами, с новым приложением.
Затем вы получите что-то, что имеет несколько разделов "client_info". Таким образом, вы должны получить что-то вроде этого:
источник
проверьте, если
client_id
иpackage_name
в google-services.json указано правильное значение в соответствии с именем вашего пакета.Вы должны добавить упомянутый файл в каталог flavors с соответствующим именем пакета в поле
client_id
andpackage_name
.источник
1. Убедитесь, что имя пакета и идентификатор приложения должны совпадать
2. Проверьте имя пакета google-services.json, которое доступно в папке приложения.
источник
Убедитесь, что вы переименовали ApplicationId в файле Gradle после переименования вашего пакета
источник
Откройте файл Google-services.json и найдите этот раздел в файле:
проверьте, совпадает ли пакет с именем вашего пакета. Мой был другим, поэтому я изменил его, и это сработало.
источник
Я родом из Реакции, но думаю, что это относится и к этому вопросу. Указать.
В файле
android/app/build.gradle
поискapplicationId
(вandroid
,defaultConfig
)и убедитесь, что это значение одинаково
client[0]client_info.android_client_info.package_name
как значение внутри
google-services.json
.источник
Вам также нужно изменить имя пакета в google-services.json
источник
Если имя вашего пакета в файле Google-services.json в порядке, перейдите в файл gradle.properties. Затем измените свой APPLICATION_ID = "com.yourpackage.name"
источник
Я думаю, что вы добавили FireBase JSON-файл "google-services" .json с новым файлом. Убедитесь, что для создания нового файла проверьте ссылку о том, как создать файл JSON из Firebase и он должен совпадать с именем вашего пакета
Во-вторых, если вы меняете имя пакета, используйте опцию «заменить в пути», когда вы щелкаете правой кнопкой мыши по файлам, когда выбираете проект из выпадающего списка. Вы должны найти имя пакета во всем проекте и заменить его!
Надеюсь это поможет !
источник
если ни один из них не сработал для одного из вас, ребята, моя проблема заключалась в том, что имя пакета не начиналось с 'com'. поменял, теперь работает.
надеюсь, это поможет
источник
убедитесь, что идентификатор приложения Gradle.app совпадает с именем вашего пакета. моя проблема была в этом, и я решил таким образом
источник
Перейдите в каталог вашего проекта и создайте в каталоге app / src папки с именами вкусов вашего продукта (например, Alpha, Beta, Store или как их называют). затем скопируйте файл google-services.json в каждую папку. не забудьте изменить поле "имя_пакета" в файле google-services.json вашего продукта, который вы вложили.
источник
Перейдите в файл google-services.json и в клиентской части проверьте имя пакета и сравните его с именем пакета приложения, если они отличаются, затем измените имя пакета клиента в соответствии с именем пакета приложения, которое мне сработало.
google-services.json file-> "имя_пакета": "com.example.application.tracker"
Имя пакета приложения-> пакет "com.example.application.tracker";
источник
Я решил это, сделав два исходных кода, один бесплатный и один платный. Обе эти папки будут содержать необходимый код Java и файлы ресурсов, которые будут отредактированы в соответствии с требованиями конкретного варианта. Например, вы хотели бы удалить код AdMob в платной как из классов Java, так и из файлов макетов.
источник
Я решил ту же проблему, повторно синхронизировав файл
google-services.json
.источник
google-services.json
.Я решил ту же проблему, вот простое решение: при создании соединения Firebase следуйте этим рекомендациям:
Добавьте имя вашего приложения в firebase
Добавьте имя пакета вашего приложения (напишите то же имя пакета, которое вы используете в приложении)
когда firebase создаст файл google-services.json, просто скачайте его и вставьте в папку своего приложения
Синхронизировать ваш проект Проблема решена :)
Спасибо
источник
Я также получаю эту проблему, когда я изменяю имя пакета моего приложения.
В вашем проекте студии android найдите файл "google-services.json". Открой это. и проверьте, совпадает ли имя пакета вашего приложения с написанным в этом файле.
Имя пакета вашего приложения и имя пакета, записанное в файле "google-services.json", должны совпадать.
источник
Это означает, что ваш файл google-services.json либо не принадлежит вашему приложению (вы скачали google-services.json для другого приложения?) ... поэтому для решения этой проблемы выполните следующие действия:
1: Войдите в Firebase и откройте свой проект. 2. Нажмите значок «Настройки» и выберите «Настройки проекта». 3: В карточке «Ваши приложения» выберите из списка имя пакета приложения, для которого вам нужен файл конфигурации. 4: Нажмите google-services.json. После завершения загрузки добавьте новый google-services.json в корневую папку вашего проекта, заменив существующую ... или просто удалите старую. Очень нормально скачать google-services.json для вашего первого проекта, а затем предположить или забыть, что этот конкретный google-services.json предназначен только для вашего текущего проекта, потому что не для других, потому что все проекты имеют уникальное имя пакета.
источник
Проверьте это
applicationIdSuffix
в файле build.gradle вашего приложения. Посмотрите, соединяет ли он какой-либо текст с вашимapplicationId
. Если так, удалите это.источник
Вы можете сделать это для решения этой проблемы.
источник
Просто. Выйдите из Android Studio, закройте его полностью. Откройте Android-студию и снова войдите в Android-студию.
Затем попробуйте подключиться к firebase из IDE студии Android. Эта процедура сработала для меня.
источник
Это легко решить: убедитесь, что имя пакета в вашем файле app / build.gradle совпадает с именем пакета в файле манифеста приложения. и убедитесь, что имя пакета указано правильно. Это должно решить это
источник