Ich entwickle eine App mit (mindestens) zwei Geschmacksrichtungen mit unterschiedlichen Paketnamen - daher eigentlich zwei verschiedene Apps soweit das Android-System betroffen ist. Die App nutzt Facebook-Sharing, so habe ich die Anbieter im Manifest erklärt:Android Facebook Content Provider Behörde
<provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
Dieser nach Facebook-Anweisungen durchgeführt wird: https://developers.facebook.com/docs/sharing/android
Dies funktioniert gut mit einer App, sondern versuchen, die zweite App zu installieren auf demselben Gerät schlägt mit dem Fehler INSTALL_FAILED_CONFLICTING_PROVIDER fehl. Dies ist der einzige Anbieter, der im Manifest definiert ist, also bin ich mir ziemlich sicher, dass es das Problem ist. Wenn ich die Provider-Zeichenfolge anders ändere, stürzt sie ab, wenn ich versuche, einen Facebook-Freigabe-Dialog zu öffnen.
Ich habe behauptet, dass es möglich ist, die gleiche Facebook-App in mehreren Android-Apps zu verwenden, aber nichts in der Facebook-Dokumentation darüber finden kann. Hat jemand das getan, und wie haben Sie das Provider-Authority-Problem gelöst? Vielen Dank.
Wenn jeder Geschmack eine andere applicationId hat, dann könnte man so etwas tun: http: // Stackoverflow .com/a/30791242/1426565 und injiziere die korrekte applicationId in die Deklaration des Providers im Manifest, da $ (applicationId) den Paketnamen und nicht die applicationId zurückgibt, die du definiert hast – Guardanis
Endlich komme ich zurück - ich gehe um es zu versuchen, aber es scheint So wird das gleiche Problem auftreten, da die App die gleiche Autoritätszeichenfolge erhält, nur vom Build-Prozess und nicht direkt im Manifest. – nasch
Sie sollten vielleicht in die verschiedenen Werte auf der Basis der applicationId zur Build-Zeit injizieren. Hier ist eigentlich eine Antwort von mir von letzter Woche, die Ihnen helfen sollte: http://stackoverflow.com/a/30791242/1426565 – Guardanis