J'ai deux applications qui utilisent le même fournisseur de contenu, mais je ne peux pas mettre le même fournisseur de contenu dans les deux applications. Il indique l'erreur INSTALL_FAILED_CONFLICTING_PROVIDER. Donc, j'ai mis mon fournisseur de contenu dans un 3ème .apk et l'ai utilisé à partir de deux applications et cela fonctionne bien.
Le problème est maintenant: le fournisseur de contenu apk doit être installé avant qu'aucune de ces deux applications ne puisse être installée sur l'appareil. Sinon, le fournisseur n'a pas trouvé d'erreur lors de l'installation.
Alors, comment puis-je m'assurer que le fournisseur apk est installé avant l'un des autres apks?
Existe-t-il un moyen de fusionner le fournisseur de contenu apk avec les deux autres apks séparément, de sorte qu'ils seront installés ensemble en tant que deux applications et ne verront pas l'erreur INSTALL_FAILED_CONFLICTING_PROVIDER?
Je dois fusionner le fournisseur de contenu apk avec les deux applications, car l'utilisateur peut ne pas installer les deux applications ou les installer sur un seul appareil.
Une solution à laquelle je peux penser est de faire en sorte que le fournisseur de contenu fasse partie à la fois des applications avec différents paquetid en interne et de les exporter à l'aide d'Android: exports = true. Les deux pourraient utiliser le même code cependant.
Au début de l'application, vous vérifiez si vous commencez à utiliser l'autre fournisseur de contenu sur le périphérique. Sinon, vous utilisez le fournisseur de contenu local. quand l'autre application s'installe, il peut faire la même vérification.
Pour protéger votre fournisseur cotent de tout le monde, vous pouvez définir une autorisation personnalisée pour le protéger, afin que vos applications ne puissent l'utiliser que ou vous pouvez également définir une authentification personnalisée, telle qu'une clé secrète, pour accéder au fournisseur de contenu. vous pouvez avoir ce code d'authentification dans toutes les méthodes du fournisseur de contenu.
Vous pouvez le résoudre en modifiant la valeur de Android:authorities
dans votre fichier AndroidManifest.xml
. Cette erreur s’explique par le fait qu’une autre application installée sur votre appareil utilise déjà cette même valeur pour Android:authorities
.
Pour résoudre cette erreur:Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER
changer la valeur deAndroid:authorities
dans votre AndroidManifest.xml file Une autre application installée sur votre appareil utilise déjà cette même valeur pour Android: autorités.
Vous utilisez une donnée unique, telle que le numéro d’enregistrement de l’API Facebook, ou quelque chose de similaire dans votre fichier manifeste (AndroidManifest.xml) pour les deux programmes: pour lequel vous avez déjà installé et pour lequel vous essayez et vous ne pouvez pas installer. Vous avez besoin:
Android: autorités = "com.facebook.app.FacebookContentProvider23473465463573466" Android: name = "com.facebook.FacebookContentProvider" Android: exports = "true" />
Cela signifie que votre téléphone a déjà un fournisseur avec les mêmes autorités, enregistré par une application différente (pourrait être votre autre exemple). Changez les autorités de votre fournisseur, c'est-à-dire Android:authorities
et vous êtes prêt à partir.