it-swarm.asia

لم يتم العثور على عميل مطابق لاسم الحزمة (Google Analytics) - العديد من أنواع المنتجات وأنواع الإنشاءات

السياق:

أحاول إعداد Google Analytics لتطبيقي. (تحتوي على 4 buildTypes مخصصة وأكثر من بضعة productFlavors)

يعمل بشكل جيد عندما أقوم بتحديد Build Variant الذي يحتوي على applicationId الذي تم تعيينه على com.my.app.package.name (اسم الحزمة المستخدم عند إنشاء google-services.json). ولكن ، النكهات الأخرى لها applicationIds مختلفة.

تابعت devguide الرسمي لإعداده.

حدث خطأ عندما يتم تحديد أي متغير بناء آخر في Build Variants Tab (والذي له applicationId (اسم الحزمة)) كما يلي:

خطأ: فشل التنفيذ للمهمة ': التطبيق: processAllcategoriesDebugfreeGoogleServices'.

لم يتم العثور على عميل مطابق لاسم الحزمة 'com.my.app.package.name.debug'

شرح رسالة الخطأ:

في اسم المهمة في رسالة الخطأ أعلاه Debugfree ، فإنني مخصص buildType و Allcategories واحد من productFlavors الخاص بي.

أفهم الخطأ وأعرف أن اسم الحزمة يختلف عن ما استخدمته عند إنشاء json ، ولكن هذا ما أحاول اكتشافه.

المشكلة:

الآن ، يوجد google-services.json في مجلد app وبالتالي لا أستطيع فصلها عن كل نكهة منتج عن طريق إسقاطها في مجلد مجموعة مصدر النكهة المحددة.

أسئلة:

  1. تخصيص byildType الخاص بي لتصحيح الأخطاء لاحقات .debug إلى applicationId (اسم الحزمة). هل هناك طريقة يمكنني من خلالها العمل مع google-services.json الذي يحتوي على إصدار applicationId (أي بدون لاحقة .debug)
  2. هل هناك طريقة لتكوين نكهات المنتج المتعددة في نفس ملف google-services.json دون استخدام ملفات ومهام منفصلة لنسخ الملف المطلوب إلى مجلد app. أعلم أنه يمكن القيام بذلك باستخدام task كما هو مذكور في هذا المنشور . هل هناك طريقة أكثر بساطة للحصول على ملف واحد فقط أو اختيار الملف الصحيح بناءً على تكوين gradle؟
  3. أرى الحقل package_name في google-services.json يحتوي على اسم الحزمة com.my.app.package.name. هل يمكنني إضافة أسماء حزم متعددة يدويًا للعمل مع جميع أشكال البناء؟ إذا كانت الإجابة بنعم ، كيف نفعل ذلك؟ لا يمكن العثور على أي تعليمات في الوثائق.
259
AndroidMechanic - Viral Patel

وجدت هذا:

يتم وضع ملف google-services.json بشكل عام في التطبيق/الدليل ، ولكن اعتبارًا من الإصدار 2.0.0 - تمت إضافة alpha3 لدعم المكون الإضافي لأنواع الإنشاء ، مما يجعل بنية الدليل التالية صالحة:

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

المصدر

المصدر 2

179
AndroidMechanic - Viral Patel

تحقق من اسم الحزمة الخاصة بك على 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 مع اسم الحزمة المحلية

234
Muhammed Fasil

تأكد من تطابق اسم الحزمة الخاصة بك في ملف "google-services.json" مع اسم حزمة تطبيقاتك.

58
cahit beyaz

لقد وجدت الحل:

يتعين علينا إنشاء "تطبيقين" في مشروع firebase ، وبعد ذلك يمكننا تنزيل ملف json من أي تطبيق واحد (قمت بتنزيله من التطبيق ذي النكهة). وسوف تحتوي على البيانات لكل من التطبيقات. يمكننا ببساطة نسخ ملف json إلى دليل جذر التطبيق.

المصدر: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-Android-app-builds.html

49
Usman

لم يتم العثور على عميل مطابق لاسم الحزمة 'com.tf' أنا متأكد من أن "package_name" في google-services.json لا يتطابق مع "applicationId" الخاص بك في منصة التطبيق.

مهد التطبيق:

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"
    }

جوجل-services.json

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

الحل : فقط تأكد من أن package_name و applicationId يجب أن يكونا متماثلين.

35
Kailash Karki

كلما قمت بإنشاء أو تحديث package name تأكد من أن اسم الحزمة الخاص بك هو نفسه بالضبط [حالة الأحرف الكبيرة والصغيرة]

تفعل أدناه الخطوة.

1). تحقق من applicationId في مستوى التطبيق gradle ملف ،

2). تحقق من package_name في ملف google-services.json الخاص بك ،

3). تحقق من package في ملفك AndroidManifest

وللتأكيد الكامل ، اجعل اسم دليل حزمة العمل الخاص بك على سبيل المثال ("com.example.app") هو نفسه أيضًا.

27
Ravi Vaniya

تحتاج إلى وضع google-services.json في app/ dir. ولكل نوع بناء ، يجب أن يكون هناك مدير توافقي في مجلد app/src.

على سبيل المثال ، إذا كان لديك إصدار وتصحيح:

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

في جميع ملفات google-services.json ، يجب عليك تحديد package_name الصحيح وفقًا لنوع البنية.

على سبيل المثال ، يجب أن يكون الوضع داخل تصحيح deb مثل {com.myapp}.debug

26
Bogdan Ustyak

تحقق مما إذا كان client_id و package_name في google-services.json له قيمة صحيحة وفقًا لاسم الحزمة الخاص بك.

يجب عليك إضافة الملف المذكور في دليل النكهات باسم الحزمة المطابق في حقل client_id و package_name.

14
Shayan Amani

افتح ملف Google-services.json وابحث عن هذا القسم في الملف:

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

تحقق مما إذا كانت الحزمة هي نفس اسم الحزمة الخاصة بك. كان لي مختلفًا ، لذا غيرته وعملت عليه.

14
DAVIS BENNY 15MIS0426

تأكد من إعادة تسمية ApplicationId في ملف gradle بعد إعادة تسمية الحزمة الخاصة بك

12
Arsalan Shah

أنا قادم من رد الفعل الأصلي ولكن أعتقد أن هذا ينطبق على هذا السؤال كذلك. لتحديد.

داخل الملف Android/app/build.gradle ابحث عن applicationId (داخل AndroiddefaultConfig)

وتأكد من أن هذه القيمة هي نفسها هذا

client[0]client_info.Android_client_info.package_name

كقيمة داخل google-services.json.

11
ThomasReggi

تحتاج أيضًا إلى تغيير اسم الحزمة في google-services.json

8
S H Mehdi

إذا كان اسم الحزمة على ملف Google-services.json على ما يرام ، فانتقل إلى ملف gradle.properties. ثم قم بتغيير APPLICATION_ID = "com.yourpackage.name"

8
Dulal Kisku

أولاً ، أضف لاحقة إلى حزمة التطبيق في 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"
    }
  }
7
Droid Chris

أعتقد أنك قمت بإضافة ملف firebase json "google-services" .json مع الملف الجديد. تأكد من إنشاء ملف جديد تحقق من الرابط حول كيفية إنشاء ملف json من firebase ويجب أن يتطابق مع اسم الحزمة الخاصة بك

الشيء الثاني هو أنه إذا كنت تقوم بتغيير اسم الحزمة ، استخدم خيار "استبدال في المسار" عند النقر بزر الماوس الأيمن أسفل الملفات عند تحديد مشروع من القائمة المنسدلة. يجب عليك البحث عن اسم الحزمة في المشروع بالكامل واستبداله!

أتمنى أن يساعدك هذا !

5
Ashok Kumar K R
Android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.package.name"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }

تأكد من أن applicationId Gradle.app هو نفسه اسم الحزمة الخاصة بك. مشكلتي كانت هذه وأنا حلها بهذه الطريقة

4
Bayar Şahintekin

إذا لم ينجح أي منها مع أحدكم يا رفاق ، فكانت مشكلتي مع اسم الحزمة الذي لم يبدأ بـ "com". غيره ، والآن يعمل.

امل ان يساعد

4
eiran

انتقل إلى دليل المشروع الخاص بك وقم بإنشاء مجلدات على مسار التطبيق/src الذي سمّى نكهات منتجك (مثل Alpha أو Beta أو Store أو ما كان اسم نكهتك). ثم انسخ ملف google-services.json إلى كل مجلد. لا تنسَ تغيير حقل "package_name" في ملف google-services.json الخاص بكل نكهة لكل منتج ، والذي قمت بتجميعه.

3
Osman Yalın

لقد حلت نفس المشكلة هنا وهو حل بسيط: عند إنشاء firebase اتصال اتبع الإرشادات التالية:

  • أضف اسم التطبيق الخاص بك في firebase

  • إضافة اسم التطبيق pakage (اكتب نفس اسم pakage ، الذي تستخدمه في التطبيق)

  • عند إنشاء قاعدة firebase google-services.json file فقط تنزيل و لصق في مجلد التطبيق

  • مزامنة مشروعك تم حل المشكلة :)

    شكرا لكم

2
Chaudhary Nouman

انتقل إلى ملف google-services.json وفي جزء العميل ، تحقق من اسم الحزمة ومقارنتها باسم حزمة التطبيقات إذا كان مختلفًا ، ثم قم بتغيير اسم حزمة العميل وفقًا لاسم حزمة التطبيق الذي حظي به حظًا سعيدًا ..

google-services.json file-> "package_name": "com.example.application.tracker"

اسم حزمة التطبيق-> package "com.example.application.tracker"؛

2
Shah Rukh

لقد قمت بحلها عن طريق صنع اثنين من المصادر ، واحد مجاني والآخر مدفوع. سيحتوي كلا المجلدين على ملفات Java البرمجية وملفات الموارد المطلوبة ، والتي سيتم تحريرها وفقًا لمتطلبات النكهة الخاصة. على سبيل المثال ، ترغب في إزالة AdMob Code في Paid سواء من فئات Java وملفات Layout.

2
Abhiroj Panwar

لقد حللت نفس المشكلة عن طريق إعادة مزامنة الملف google-services.json.

الأدوات> Firebase> الاتصال بـ Firebase> Sync

2
Nabin Bhandari

هذا يعني أن ملف google-services.json إما لا ينتمي إلى تطبيقك (هل قمت بتنزيل google-services.json لتطبيق آخر؟) ... لحل هذا قم بما يلي:

1: سجّل الدخول إلى Firebase وافتح مشروعك. 2: انقر أيقونة الإعدادات وحدد إعدادات المشروع. 3: في بطاقة التطبيقات الخاصة بك ، حدد اسم حزمة التطبيق الذي تحتاج إلى ملف تكوين من القائمة. 4: انقر فوق google-services.json. بعد اكتمال التنزيل ، أضف google-services.json الجديد إلى مجلد جذر المشروع ، واستبدل الملف الموجود ... أو احذف المجلد القديم. من الطبيعي جدًا تنزيل google-services.json لمشروعك الأول ، ثم افترض أو ننسى أن هذا google-services.json المخصص مصمم خصيصًا لمشروعك الحالي وحده ، لأنه ليس هناك أي مشروع آخر لأن جميع المشاريع لها اسم حزمة فريد.

1
RileyManda

أحصل أيضًا على هذه المشكلة عندما أقوم بتغيير اسم حزمة طلبي.

في مشروع استوديو أندرويد الخاص بك ، ابحث عن ملف "google-services.json". افتحه. وتحقق مما إذا كان اسم حزمة التطبيق الخاص بك هو نفسه المكتوب في هذا الملف.

يجب أن يكون اسم الحزمة للتطبيق واسم الحزمة المكتوب في ملف "google-services.json" هو نفسه.

1
mehmoodnisar125

1. تحقق اسم الحزمة و معرف التطبيق يجب أن يكون هو نفسه

2. تحقق اسم حزمة google-services.json والذي يتوفر في مجلد التطبيق

1
John Ruban Singh

تحقق من applicationIdSuffix في ملف build.gradle الخاص بالتطبيق. معرفة ما إذا كان يتم ربط أي نص بـ applicationId. إذا كان الأمر كذلك ، فقم بإزالته.

0
Arsalan Shah

يحدث هذا الخطأ عندما يكون لديك ملف Google Services Json قد تم تنزيله في مشروعك ولا يتطابق اسم الحزمة مع اسم حزمة المشروع.

إعادة تسمية مؤخرا اسم حزمة المشروع؟ يقوم بتحديث جميع الفئات ولكن ليس ملف Gradle . لذا تحقق مما إذا كان اسم الحزمة صحيحًا في Gradle ، وربما أيضًا Manifest أيضًا.

0
devDeejay