Android Facebook Content Provider Behörde

Ich entwickle eine App mit (mindestens) zwei Aromen mit verschiedenen Paketnamen – also eigentlich zwei verschiedene Apps, soweit es das Android-System betrifft. Die App nutzt Facebook-Sharing, also habe ich den Provider im Manifest erklärt:

<provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}" android:name="com.facebook.FacebookContentProvider" android:exported="true"/> 

Dies geschieht nach den Anweisungen von Facebook: https://developers.facebook.com/docs/sharing/android

Das funktioniert gut mit einer App, aber der Versuch, die zweite App auf demselben Gerät zu installieren, schlägt mit dem Fehler INSTALL_FAILED_CONFLICTING_PROVIDER fehl. Dies ist der einzige Anbieter, der im Manifest definiert ist, also bin ich ziemlich sicher, dass es das Problem ist. Wenn ich den Provider-String um etwas anderes ändere, stürzt es ab, wenn man versucht, einen Facebook-Share-Dialog zu öffnen.

Ich habe behauptet, dass es möglich ist, die gleiche Facebook-App in mehreren Android-Apps zu verwenden, aber kann nichts in Facebook-Dokumentation darüber finden. Hat irgendjemand das getan und wie hast du das Problem der Provider-Autorität erreicht? Vielen Dank.

  • Wie überprüft facebook App Authentizität mit Schlüssel Hash?
  • Facebook Clipping Text auf Android bei der Verwendung eines ACTION_SEND Absicht
  • Authentifizieren Sie den Benutzer, der mit dem FB auf meinem Server mit dem Android Account Manager angemeldet ist
  • Wie kann ich Twitter und Facebook App mit Phonegap öffnen?
  • ParseFacebookUtils logInWithReadPermissionsInBackground ungültiges Datum
  • Facebook Android SDK 3.0 gibt bei der Anmeldung immer wieder OPENING zurück
  • Wie generiere ich Keyhash (Facebook) mit dem Keytool in Android für W7 32bit
  • Android teilen Absicht für facebook- share text AND link
  • 3 Solutions collect form web for “Android Facebook Content Provider Behörde”

    Ich war in der Lage, dies zu lösen, indem ich separate Manifeste für meine Debug-und Release-Aromen und in meinem Debug-Geschmack Manifest, fügte ich das Snippet für den Anbieter, sondern legte den exportierten Wert falsch. In meinem Release Geschmack Manifest, habe ich die ursprüngliche Anbieter Snippet mit exportiert gesetzt auf true.

    Nachdem ich das gemacht habe, bekam ich nicht mehr den Fehler INSTALL_FAILED_CONFLICTING_PROVIDER.

     <provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}" android:name="com.facebook.FacebookContentProvider" android:exported="false"/> 
     <provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}" android:name="com.facebook.FacebookContentProvider" android:exported="false"/> 

    Exportiert kann "wahr"

    Eine der möglichen Lösungen, die ich gefunden habe, ist die hier beschriebene

    http://gradlewhy.ghost.io/overcoming-install-failed-conflicting-provider/

    Ich verwende das schon für (debug / release variants) android.support.v4.content.FileProvider und soweit ich getestet habe funktioniert auch für com.facebook.app.FacebookContentProvider.

    Füge einfach in apps build.gradle hinzu

      debug { applicationIdSuffix '.debug' versionNameSuffix '-DEBUG' resValue "string", "fb_provider_id", "com.facebook.app.FacebookContentProvider{app_id_1}" } release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' resValue "string", "fb_provider_id", "com.facebook.app.FacebookContentProvider{app_id_2}" } 

    Und dann im AndroidManifest

     <provider android:authorities="@string/fb_provider_id" android:name="com.facebook.FacebookContentProvider" android:exported="true"/> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.