La instalación muestra un error en la consola: INSTALAR EL PROVEEDOR EN CONFLICTO ERROR

Resuelto johnsonjp34 asked hace 54 años • 32 respuestas

Estoy experimentando con el programa de muestra NotesList en el SDK de Android. Hice una ligera variación en el programa, pero cuando instalo mi versión editada sigo recibiendo el mensaje INSTALL_FAILED_CONFLICTING_PROVIDER en la consola cuando intento instalarlo cuando el programa de notas original ya está en el dispositivo. ¿Qué necesito cambiar en el Proveedor para que sea una base de datos única? Funciona bien si desinstalo el programa de notas original y luego instalo mi versión editada.

johnsonjp34 avatar Jan 01 '70 08:01 johnsonjp34
Aceptado

La autoridad, tal como se enumera en, android:authoritiesdebe ser única. Citando la documentación para este atributo :

Para evitar conflictos, los nombres de las autoridades deben utilizar una convención de nomenclatura estilo Java (como com.example.provider.cartoonprovider). Normalmente, es el nombre de la subclase ContentProvider que implementa el proveedor.

CommonsWare avatar Apr 28 '2013 21:04 CommonsWare

Si tiene diferentes tipos y desea evitar colisiones en el nombre de la autoridad, puede agregar un applicationIdSuffixtipo de compilación y usar el resultado applicationIden su manifiesto, así:

<...
 android:authorities="${applicationId}.contentprovider"/>
Jose L Ugia avatar May 07 '2015 14:05 Jose L Ugia

Esto también puede suceder cuando tiene instalada una versión anterior de su aplicación y realizó cambios en la biblioteca (de soporte) o en el archivo de manifiesto. Entonces , eliminar las aplicaciones antiguas de su dispositivo ( Settings --> Application --> <your application> --> Uninstall) resolverá el problema.

nburk avatar Sep 16 '2014 19:09 nburk

Si está utilizando el SDK de Facebook, el problema podría estar en el valor de "autoridades" que proporciona al proveedor de Facebook.

REEMPLAZAR -

<provider
        android:name="com.facebook.FacebookContentProvider"
        android:authorities="com.facebook.FacebookContentProvider"
        android:exported="true" />

CON ->

<provider
        android:name="com.facebook.FacebookContentProvider"
        android:authorities="com.facebook.FacebookContentProvider[YOUR_APP_ID]"
        android:exported="true" />

Es posible que deba cambiar defaultConfig.ApplicationIdtambién como se sugiere en otras respuestas.

Ankit Aggarwal avatar Nov 09 '2016 16:11 Ankit Aggarwal