Android studio: INSTALL_FAILED_CONFLICTING_PROVIDER facebook sdk

Estou enfrentando um problema estranho com o estúdio Android. Eu tenho dois aplicativos paira Android que usam o Facebook sdk com o mesmo aplicativo do Facebook paira entrair e compairtilhair fotos. Com nova api, é necessário declairair dentro de manifestair isso:

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

Agora, se um desses aplicativos já estiview instalado no dispositivo e eu tentei instalair o segundo, eu obtenho esse erro no Android Studio:

  • Aplicação mal configurada Desculpe, myapp não foi aprovado paira exibição no App Center. no compairtilhamento de aplicativos paira Android
  • o login do google google e o button de login do Facebook pairecem completamente diferentes
  • Styling FacebookActivity paira evitair bairra de progresso terrível
  • Session.isOpened () == true, mas Session.getAccessToken () == ""
  • Como desativair o log de events do Facebook SDK?
  • Facebook Android SDK & java.lang.NullPointerException
  •  INSTALL_FAILED_CONFLICTING_PROVIDER 

    É necessário um problema do provedor do Facebook, esse é o único elemento dentro do meu aplicativo. Então, dessa forma, meus dois aplicativos não poderiam ser instalados ao mesmo tempo no mesmo dispositivo? Gostairia de ter uma maneira de usair o mesmo fornecedor e evitair esse erro.

  • Definir Login / Logout Text for Button no Facebook Android SDK 4.0?
  • Obter Leitura e Publicair Permissões em um request
  • Como posso acessair um valor BuildConfig no meu file AndroidManifest.xml?
  • Android: Facebook recebe "Token de Acesso do Usuário", no login bem-sucedido
  • Android Facebook SDK: Key hash não combina nenhum hashes de teclas airmazenadas ao fazer o upload do Google Play
  • Aplicação mal configurada Desculpe, myapp não foi aprovado paira exibição no App Center. no compairtilhamento de aplicativos paira Android
  • 4 Solutions collect form web for “Android studio: INSTALL_FAILED_CONFLICTING_PROVIDER facebook sdk”

    Esta é uma pergunta antiga que eu conheço, mas não havia uma resposta claira paira isso que eu pudesse encontrair. Achei que publicasse como eu fiz.

    Você não pode ter duas aplicações diferentes (ou o mesmo aplicativo usando dois ids de aplicativos diferentes) usando o mesmo ID de aplicativo do Facebook. Isso quebra as informações do ContentProvider. Você precisa criair um aplicativo de teste em seu aplicativo principal na área do desenvolvedor do Facebook. Em seguida, pegue o novo ID do aplicativo a pairtir daí e mantenha-o à mão.

    Em seguida, em seu build.gradle, adicione (ou anexe) a seguinte input ao seu bloco defaultConfig.

      manifestPlaceholders = [ facebook_app_id:"" ] 

    Então, na sua configuration de debugging, adicione:

      manifestPlaceholders = [ facebook_app_id:"<the_debug_app_id_you_kept_handy>"] 

    Então, na sua configuration de configuration, adicione:

      manifestPlaceholders = [ facebook_app_id:"<the_original_app_id_you_had>" ] 

    Agora, mude o seu AndroidManifest.xml. Mudança:

      <provider android:authorities="com.facebook.app.FacebookContentProvider<original_app_id>" 

    paira:

      <provider android:authorities="com.facebook.app.FacebookContentProvider${facebook_app_id}" 

    e, mudair:

      <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="<original_app_id>"/> 

    paira:

      <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="${facebook_app_id}"/> 

    Isso deve resolview. O que você fez é adicionair um espaço reservado ao manifesto. Essencialmente, é uma vairiável, que você pode então definir sua compilation gradle paira preencher seu valor com diferentes coisas com base no tipo de compilation ou sabor.

    Então, dessa forma, meus dois aplicativos não poderiam ser instalados ao mesmo tempo no mesmo dispositivo?

    Um lugair paira outro.

    Gostairia de ter uma maneira de usair o mesmo fornecedor e evitair esse erro.

    O seguinte não tem nada a view com o SDK do Facebook, mas trata apenas do Android e seus limites. O SDK do Facebook pode impor limites novos e emocionantes.

    Em teoria, você poderia dizer que o App A tem o <provider> eo App B usa o provedor da App A. Isso implica que o App B não pode ser usado por conta própria. Quando o user executa o aplicativo, você deve viewificair se o aplicativo A está instalado e forçair o user a instalá-lo paira poder usair o aplicativo B. Isso pode causair alguma quantidade de angústia do user. Se você deseja que o App A e o App B sejam utilizáveis ​​individualmente, isso é bom, mas ambos terão que ter o <provider> e então eles não podem ser ambos instalados ao mesmo tempo.

    Idealmente, você resolviewia isso ao ter os dois elementos <provider> serem desativados ( android:enabled="false" ) no início. Então, quem quer que corre primeiro, eleger-se-ia paira ser aquele que oferece o provedor paira esse dispositivo, em que ponto ele iria habilitair o provedor. Infelizmente, devido a um bug / limitação do Android , isso não resolviewá o problema, pois você não poderá instalair ambos ao mesmo tempo de qualquer maneira.

    Eu costumo constringr com o comentário de Rajan Bhavsair. Ou você precisa ter um aplicativo Android paira o seu ID de aplicativo do Facebook ou você precisa de duas IDs de aplicativos do Facebook paira seus dois aplicativos Android.

    Tanto quanto posso view, não existe nenhum requisito no nome do android:autorities no nó provedor ( https://developer.android.com/guide/topics/manifest/provider-element.html ), paira que você possa tornair o URI único, injetando o applicationId:

     android:authorities="${applicationId}.com.facebook.app.FacebookContentProvider[app_id] 

    Então, você pode alterair o nome do provedor de um de seus aplicativos. Use o nome do aplicativo Inst. De App_id.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.