Подтвердить что ты не робот

Не найдено ни одного подходящего клиента для имени пакета (Google Analytics) - несколько продуктовFlavors & buildTypes

Контекст:

Я пытаюсь настроить Google Analytics для своего приложения. (имеет 4 пользовательских buildTypes и более нескольких productFlavors)

Он отлично работает, когда я выбираю Build Variant, у которого applicationId установлен на com.my.app.package.name (имя пакета, используемое при создании google-services.json). Но, мои другие вкусы имеют разные приложения.

Я выполнил официальный devguide, чтобы настроить его.

Ошибка, когда какой-либо другой вариант сборки выбран в Build Variants Tab (который имеет другое applicationId (имя пакета):

Ошибка: выполнение выполнено для задачи ': Приложение: 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. Могу ли я добавить несколько имен пакетов вручную для работы во всех вариантах сборки? Если да, как это сделать? Не удалось найти инструкции в документах.
4b9b3361

Ответ 1

Найдено следующее:

Файл google-services.json обычно помещается в приложение/ каталог, , но с версии 2.0.0-alpha3 поддержки плагина добавлено для типов сборки, что сделает следующий каталог структура действительна:

app/src/
    main/google-services.json
    dogfood/google-services.json
    mytype1/google-services.json
    ...

Источник

Источник 2

Ответ 2

Проверьте название пакета в вашем google-services.json, оно должно совпадать с именем вашего пакета в вашем приложении.

пример

"client_info": {
    "mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
    "android_client_info": {
      "package_name": "com.my.app.package.name"
    }

В этом случае моим локальным именем пакета является com.my.app.package.name, поэтому я также изменил имя пакета в google-services.json на свое локальное имя пакета.

Ответ 3

убедитесь, что имя вашего пакета в файле "google-services.json" совпадает с вашим именем пакета приложений.

Ответ 4

Я нашел решение:

Мы должны создать два "приложения" в проекте firebase, а затем мы можем скачать json файл из любого приложения (я загрузил из приправленного приложения). Он будет содержать данные для обоих приложений. Мы можем просто скопировать json файл в корневой каталог приложения.

Источник: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html

Ответ 5

Не найдено подходящего клиента для имени пакета "com.tf". Я уверен, что "имя_пакета" в google-services.json не соответствует вашему "applicationId" в граде приложения.

приложение Gradle:

defaultConfig {
        applicationId "com.tf" //replace with the package_name in google-services.json =
        minSdkVersion 23
        targetSdkVersion 26
        versionCode 7
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

Google-services.json

"client_info": {
        "mobilesdk_app_id": "1:23978655351:android:2b2fece6b961cc70",
        "android_client_info": {
          "package_name": "in.ac.geu.debug"
        }
      },

Решение: Просто убедитесь, что package_name и package_name applicationId должны совпадать.

Ответ 6

Всякий раз, когда вы создаете или обновляете package name убедитесь, что имя вашего пакета точно такое же [Прописные и строчные буквы имеют значение]

Делай ниже шаг.

1). Проверьте applicationId в файле gradle уровня gradle,

2). Проверьте package_name в файле google-services.json,

3). Проверьте package в вашем файле AndroidManifest

и для полного подтверждения укажите имя каталога вашего рабочего пакета, т.е. ("com.example.app") тоже то же самое.

Ответ 7

Вам нужно поместить google-services.json в каталог app/. И для каждого типа сборки должен быть app/src.

Например, если у вас есть выпуск и отладка:

app/google-services.json
app/src/debug/google-services.json

Во всех файлах google-services.json вы должны указать правильный package_name в соответствии со строкой.

Например, внутри debug dir это должно быть как {com.myapp}.debug

Ответ 8

проверьте, соответствуют ли client_id и package_name в google-services.json правильное значение в соответствии с вашим именем пакета.

Вы должны добавить указанный файл в каталог flavors с соответствующим именем пакета в поле client_id и package_name.

Ответ 9

Откройте файл Google-services.json и найдите этот раздел в файле:

"client": [
{
  "client_info": {
    "mobilesdk_app_id": "1:857242555489:android:46d8562d82407b11",
    "android_client_info": {
      "package_name": "com.example.duke_davis.project"
    }
  }

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

Ответ 10

Убедитесь, что вы переименовали ApplicationId в файл gradle после переименования пакета

Ответ 11

Мне кажется, что это относится и к этому вопросу. Чтобы указать.

Внутри файла android/app/build.gradle найдите applicationId (в пределах android, defaultConfig)

и убедитесь, что это значение является тем же самым

client[0]client_info.android_client_info.package_name

как значение в пределах google-services.json.

Ответ 12

Если ваше имя пакета в файле Google-services.json в порядке, Перейдите в gradle.properties файл. Затем измените свой APPLICATION_ID = "com.yourpackage.name"

Ответ 13

Вам также необходимо изменить имя пакета в google-services.json

Ответ 14

Прежде всего, добавьте суффикс к пакету приложения в Gradle:

yourFlavor {
   applicationIdSuffix "yourFlavor"
}

Это приведет к тому, что ваш пакет будет назван

com.domain.yourapp.yourFlavor

Затем перейдите в Firebase под вашим текущим проектом и добавьте в него еще одно приложение для Android с этим именем пакета.

Затем замените существующий файл google-services.json на новый, созданный вами, с новым приложением.

Затем вы получите что-то, что имеет несколько разделов "client_info". Таким образом, вы должны получить что-то вроде этого:

"client_info": {
    "mobilesdk_app_id": "YOUR APP INFO",
    "android_client_info": {
      "package_name": "com.domain.yourapp"
    }
  }

"client_info": {
    "mobilesdk_app_id": "YOUR APP INFO - will be different then other app info",
    "android_client_info": {
      "package_name": "com.domain.yourapp.yourFlavor"
    }
  }

Ответ 15

Я думаю, что вы добавили FireBase JSON файл "google-services".json с новым файлом. Убедитесь, что для создания нового файла проверьте ссылку о том, как создать файл json из firebase, и он должен совпадать с именем вашего пакета

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

Надеюсь это поможет !

Ответ 16

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

надеюсь, что поможет

Ответ 17

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.package.name"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

убедитесь, что Gradle.app applicationId совпадает с именем вашего пакета. моя проблема была в этом, и я решил так

Ответ 18

перейдите в каталог проекта и создайте папки на пути к приложению /src, которые назвали ваши вкусы продукта (например, Alpha, Beta, Store или то, что когда-либо было вашим именем аромата). затем скопируйте файл google-services.json в каждую папку. не забудьте изменить поле "имя_пакета" в вашем файле "google-services.json" вашего продукта, который вы вложили в папку.

Ответ 19

Я решил это, сделав два источника, один бесплатный и один заплатил. Обе эти папки будут содержать требуемый код Java и файлы ресурсов, которые будут редактироваться в соответствии с требованиями конкретного вкуса. Например, вы хотите удалить AdMob Code в Платеже как из классов Java, так и из файлов макета.

Ответ 20

Я решил ту же проблему, повторно синхронизируя файл google-services.json.

Инструменты > Firebase > Подключиться к Firebase > Sync

Ответ 21

Я решил ту же проблему вот простое решение: когда вы создаете соединение firebase, следуйте этим рекомендациям:

  • Добавьте свое имя приложения в firebase

  • Добавьте имя приложения pakage (напишите то же имя pakage, которое вы используете в приложении)

  • когда firebase делает файл google-services.json только загружает и вставляет его в папку вашего приложения

  • Синхронизация проекта Проблема решена:)

    Спасибо

Ответ 22

Перейдите в файл google-services.json и в клиентской части проверьте имя пакета и сравните его с именем пакета приложения, если они отличаются, затем измените имя пакета клиента в соответствии с именем пакета приложения, которое мне сработало.

google-services.json file-> "имя_пакета": "com.example.application.tracker"

Пакет приложений name-> пакет "com.example.application.tracker";

Ответ 23

Это означает, что ваш файл google-services.json либо не принадлежит вашему приложению (вы скачали google-services.json для другого приложения?)... поэтому для решения этой проблемы выполните следующие действия:

1: Войдите в Firebase и откройте свой проект. 2. Нажмите значок "Настройки" и выберите "Настройки проекта". 3: В карточке "Ваши приложения" выберите из списка имя пакета приложения, для которого вам нужен файл конфигурации. 4: Нажмите google-services.json. После завершения загрузки добавьте новый google-services.json в корневую папку вашего проекта, заменив существующую... или просто удалите старую. Очень нормально скачать google-services.json для вашего первого проекта, а затем предположить или забыть, что этот конкретный google-services.json предназначен только для вашего текущего проекта, потому что не для других, потому что все проекты имеют уникальное имя пакета.

Ответ 24

Я также получаю эту проблему, когда я изменяю имя пакета моего приложения.

В вашем проекте студии android найдите файл "google-services.json". Открой это. и проверьте, совпадает ли имя пакета вашего приложения с написанным в этом файле.

Имя пакета вашего приложения и имя пакета, записанное в файле "google-services.json", должны совпадать.

Ответ 25

1. Убедитесь, что имя пакета и идентификатор приложения должны совпадать

2. Проверьте имя пакета google-services.json, которое доступно в папке приложения.

Ответ 26

Проверьте для applicationIdSuffix в файле вашего приложения build.gradle. Посмотрите, объединяет ли он какой-либо текст с вашим applicationId. Если так, удалите это.

Ответ 27

Эта ошибка возникает, когда в ваш проект загружен файл Json Служб Google, имя пакета которого не совпадает с именем пакета вашего проекта.

Недавно переименовали название пакета проекта? Он обновляет все классы, но не Gradle File. Так что проверьте правильность имени вашего пакета в вашем Gradle, а также, возможно, и Manifest.

Ответ 28

Вы можете сделать это для решения этой проблемы.

enter image description here

Ответ 29

Просто. Выйдите из Android Studio, закройте его полностью. Откройте Android-студию, а затем снова войдите в Android-студию.

Затем попробуйте подключиться к firebase из IDE студии Android. Эта процедура работала для меня.

Ответ 30

Это легко решить: просто убедитесь, что имя пакета в вашем файле app/build.gradle совпадает с именем пакета в файле манифеста приложения. и убедитесь, что имя пакета указано правильно. Это должно решить это