android - studio - No se ha encontrado ningún cliente coincidente para el nombre del paquete(Google Analytics): múltiples productos, favores y tipos de compilación
flavordimensions (30)
Siempre que cree o actualice el
package name
Asegúrese de que el nombre de su paquete sea exactamente el mismo [Mayúsculas y minúsculas son importantes]
Haz debajo del paso.
1)
Compruebe
applicationId
en el archivo
gradle
nivel de
gradle
,
2)
Verifique
package_name
en su archivo
google-services.json
,
3)
Verifique el
package
en su archivo
AndroidManifest
y para una confirmación completa, haga que el nombre del directorio de su paquete de trabajo, es decir ("com.example.app") sea también el mismo.
Contexto:
Estoy tratando de configurar Google Analytics para mi aplicación.
(tener 4
buildTypes
personalizados y más de unos pocos
productFlavors
)
Funciona bien cuando selecciono la
Build Variant
que tiene el
com.my.app.package.name
applicationId
establecido en
com.my.app.package.name
(el nombre del paquete utilizado al generar
google-services.json
).
Pero, mis otros sabores tienen diferentes ID de aplicación.
Seguí el devguide oficial para configurarlo.
El error que obtengo cuando se selecciona cualquier otra variante de
Build Variants Tab
en la
Build Variants Tab
(que tiene un ID de
applicationId
diferente (nombre del paquete) es la siguiente:
Error: Falló la ejecución de la tarea '': aplicación: processAllcategoriesDebugfreeGoogleServices''.
No se ha encontrado ningún cliente coincidente para el nombre del paquete ''com.my.app.package.name.debug''
Explicación del mensaje de error:
En el nombre de la tarea en el mensaje de error anterior,
Debugfree
es mi tipo de
buildType
personalizado y
Allcategories
es uno de mis
productFlavors
.
Entiendo el error y sé que el nombre del paquete es diferente de lo que usé al generar el json, pero eso es lo que estoy tratando de resolver.
Problema:
Ahora,
google-services.json
reside en la carpeta de la
app
y, por lo tanto, no puedo separarlos para cada sabor de producto soltándolos en la carpeta del conjunto de origen específico del sabor.
Preguntas:
-
Mi
byildType
personalizado para depurar sufijos.debug
en el.debug
deapplicationId
(nombre del paquete). ¿Hay alguna manera de que funcione congoogle-services.json
que tiene mi.debug
applicationId
lanzamiento (es decir, sin el sufijo.debug
) -
¿Hay alguna manera de tener múltiples sabores de productos configurados en el mismo archivo
google-services.json
sin usar archivos y tareas separados para copiar el archivo requerido a la carpeta de laapp
? Sé que se puede hacer usando latask
como se menciona en esta publicación . ¿Hay una manera más simple de tener un solo archivo o elegir el archivo correcto según la configuración de Gradle? -
Veo que el campo
package_name
engoogle-services.json
tiene el nombre del paquetecom.my.app.package.name
. ¿Puedo agregar múltiples nombres de paquetes manualmente para trabajar con todas las variantes de compilación? Si es así, ¿cómo hacer eso? No se encontraron instrucciones en la documentación.
1.Verifique que el nombre del paquete y la ID de la aplicación deben ser iguales
2.Verifique el nombre del paquete google-services.json que está disponible en la carpeta de la aplicación
Abra su archivo Google-services.json y busque esta sección en el archivo:
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:857242555489:android:46d8562d82407b11",
"android_client_info": {
"package_name": "com.example.duke_davis.project"
}
}
compruebe si el paquete es el mismo que el nombre de su paquete. El mío era diferente, así que lo cambié y funcionó.
Así de simple. Cierre sesión en Android Studio, ciérrelo por completo. Vuelva a abrir Android Studio y luego vuelva a iniciar sesión en Android Studio.
Luego intente conectarse a firebase desde el IDE de estudio de Android. Este procedimiento funcionó para mí.
Asegúrese de cambiar el nombre de ApplicationId en el archivo gradle después de cambiar el nombre de su paquete
Creo que ha agregado el archivo json de firebase "google-services" .json con el nuevo archivo. Asegúrese de crear un nuevo archivo, consulte el enlace sobre cómo crear un archivo json desde firebase y debe coincidir con el nombre de su paquete
Lo segundo es que si está cambiando el nombre del paquete, use la opción "reemplazar en ruta" cuando haga clic derecho debajo de los archivos cuando seleccione el proyecto en el menú desplegable. ¡Debe buscar el nombre del paquete en todo el proyecto y reemplazarlo!
Espero que esto ayude !
En primer lugar, agregue un sufijo al paquete de la aplicación en Gradle:
yourFlavor {
applicationIdSuffix "yourFlavor"
}
Esto hará que su paquete sea nombrado
com.domain.yourapp.yourFlavor
Luego vaya a Firebase debajo de su proyecto actual y agregue otra aplicación de Android con este nombre de paquete.
Luego, reemplace el archivo existente google-services.json con el nuevo que genere con la nueva aplicación.
Luego terminarás con algo que tiene múltiples secciones "client_info". Entonces deberías terminar con algo como esto:
"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"
}
}
Encontró esto:
El archivo google-services.json generalmente se coloca en el directorio app /, pero a partir de la versión 2.0.0-alpha3 del complemento se agregó soporte para los tipos de compilación , lo que haría válida la siguiente estructura de directorios:
app/src/ main/google-services.json dogfood/google-services.json mytype1/google-services.json ...
Es simple resolver esto: solo asegúrese de que el nombre del paquete en su archivo app / build.gradle sea el mismo nombre del paquete que el del archivo del Manifiesto de la aplicación. y asegúrese de que el nombre del paquete sea correcto. Eso debería resolver esto
Este error ocurre cuando tiene un archivo Json de Google Services descargado en su proyecto cuyo nombre de paquete no coincide con el nombre del paquete de su proyecto.
Recientemente renombró el nombre del paquete del proyecto? Actualiza todas las clases pero no el archivo Gradle . Así que verifique si el nombre de su paquete es correcto en su Gradle, y también tal vez Manifiesto.
Esto significa que su archivo google-services.json no pertenece a su aplicación (¿Descargó google-services.json para otra aplicación?) ... así que para resolver esto, haga lo siguiente:
1: Inicie sesión en Firebase y abra su proyecto. 2: Haga clic en el icono de Configuración y seleccione Configuración del proyecto. 3: En la tarjeta Sus aplicaciones, seleccione el nombre del paquete de la aplicación para la que necesita un archivo de configuración de la lista. 4: haga clic en google-services.json. Una vez completada la descarga, agregue el nuevo google-services.json a la carpeta raíz del proyecto, reemplazando el existente ... o simplemente elimine el anterior. Es muy normal descargar google-services.json para su primer proyecto y luego asumir u olvidar que este google-services.json específico está diseñado solo para su proyecto actual, porque no otro porque todos los proyectos tienen un nombre de paquete único.
He encontrado la solución:
Tenemos que crear dos "aplicaciones" en el proyecto firebase, y luego podemos descargar el archivo json desde cualquier aplicación (la descargué de la aplicación con sabor). Contendrá los datos de ambas aplicaciones. Simplemente podemos copiar el archivo json en el directorio raíz de la aplicación.
Fuente: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html
Lo resolví haciendo dos fuentes, una gratuita y otra paga. Ambas carpetas contendrán el código Java requerido y los archivos de recursos, que se editarán según los requisitos del sabor particular. Por ejemplo, desea eliminar el código de AdMob en el pago tanto de las clases de Java como de los archivos de diseño.
Resolví el mismo problema aquí, es una solución simple: cuando cree una conexión Firebase , siga estas pautas:
-
Agregue el nombre de su aplicación en firebase
-
Agregue el nombre del paquete de la aplicación (escriba el mismo nombre del paquete que está utilizando en la aplicación)
-
cuando firebase cree el archivo google-services.json , simplemente descárguelo y péguelo en la carpeta de la aplicación
-
Sincroniza tu proyecto El problema está resuelto :)
Gracias
Resolví el mismo problema volviendo a sincronizar el archivo
google-services.json
.
Herramientas> Firebase> Conectar a Firebase> Sincronizar
Si el nombre de su paquete en el archivo Google-services.json está bien, vaya al archivo gradle.properties. Luego cambie su APPLICATION_ID = "com.yourpackage.name"
Si nada de eso funcionó para uno de ustedes, mi problema fue con un nombre de paquete que no comenzó con un ''com''. lo cambió, ahora funciona.
Espero que ayude
También debe cambiar el nombre del paquete en google-services.json
También recibo este problema cuando cambio el nombre del paquete de mi aplicación.
En su proyecto de estudio de Android, busque el archivo "google-services.json". Abrelo. y verifique si el nombre del paquete de su aplicación es el mismo que está escrito en este archivo.
El nombre del paquete de su aplicación y el nombre del paquete escrito en el archivo "google-services.json" debe ser el mismo.
Vaya al archivo google-services.json y, en la parte del cliente, verifique el nombre del paquete y compárelo con el nombre del paquete de la aplicación si son diferentes, luego cambie el nombre del paquete del cliente de acuerdo con el nombre del paquete de la aplicación.
archivo google-services.json-> "nombre_paquete": "com.example.application.tracker"
Nombre del paquete de la aplicación-> paquete "com.example.application.tracker";
Vengo de reaccionar nativo, pero creo que esto también se aplica a esta pregunta. Para especificar.
Dentro del archivo
android/app/build.gradle
busque
applicationId
(dentro de
android
,
defaultConfig
)
y asegúrese de que ese valor sea el mismo
client[0]client_info.android_client_info.package_name
como el valor dentro de
google-services.json
.
Verifique
applicationIdSuffix
en el archivo build.gradle de su aplicación.
Vea si está concatenando algún texto a su
applicationId
.
Si es así, retírelo.
Verifique el nombre del paquete en su google-services.json , debe coincidir con el nombre del paquete local de su aplicación
Ejemplo
"client_info": {
"mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
"android_client_info": {
"package_name": "com.my.app.package.name"
}
En este caso, el nombre de mi paquete local es com.my.app.package.name, así que también he cambiado el nombre de mi paquete en google-services.json con mi nombre de paquete local.
asegúrese de que el nombre de su paquete en el archivo "google-services.json" coincida con el nombre del paquete de sus aplicaciones.
compruebe si
client_id
y
package_name
en
google-services.json
tiene un valor correcto de acuerdo con el nombre de su paquete.
Debe agregar el archivo mencionado en el directorio de sabores con el nombre del paquete correspondiente en el campo
client_id
y
package_name
.
vaya al directorio de su proyecto y cree carpetas en la ruta de la aplicación / src que denominen los sabores de su producto (como Alpha, Beta, Store o el nombre de su sabor). luego copie su archivo google-services.json en cada carpeta. no olvide cambiar el campo "nombre_paquete" en el archivo google-services.json de cada sabor de producto que subcarpeó.
google-services.json
colocar
google-services.json
en la
app/
dir.
Y para cada tipo de compilación, debe haber un director acorde en la carpeta
app/src
.
Por ejemplo, si tiene versión y depuración:
app/google-services.json
app/src/debug/google-services.json
En todos los archivos google-services.json, debe especificar el
package_name
correcto según el tipo de compilación.
Por ejemplo, dentro del directorio de depuración debería ser como
{com.myapp}.debug
No se encontró ningún cliente coincidente para el nombre del paquete ''com.tf'' . Estoy bastante seguro de que el "nombre_paquete" en google-services.json no coincide con su "ID de aplicación" en la aplicación gradle.
aplicación 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"
}
},
Solución
: solo asegúrese de que
package_name
y
applicationId
deben ser iguales.
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.package.name"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
asegúrese de que el ID de aplicación de Gradle.app sea el mismo que su nombre de paquete. mi problema era este y lo resolví de esta manera