मैं (कम से कम) अलग पैकेज के नाम होने दो जायके के साथ एप्लिकेशन को विकसित कर रहा हूँ। एप्लिकेशन फेसबुक साझा करने का उपयोग करता है, तो मैं प्रदाता प्रकट में घोषणा की है:एंड्रॉयड फेसबुक सामग्री प्रदाता अधिकार
<provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
यह फेसबुक के निर्देशों के अनुसार किया जाता है: https://developers.facebook.com/docs/sharing/android
यह एक अनुप्रयोग के साथ ठीक काम करता है, लेकिन दूसरे एप्लिकेशन इंस्टॉल करने की कोशिश कर उसी डिवाइस पर INSTALL_FAILED_CONFLICTING_PROVIDER त्रुटि के साथ विफल रहता है। यह एकमात्र प्रदाता है जो मैनिफेस्ट में परिभाषित किया गया है, इसलिए मुझे पूरा यकीन है कि यह समस्या है। यदि मैं प्रदाता स्ट्रिंग को कुछ अलग होने के लिए बदलता हूं तो यह एक फेसबुक शेयर संवाद खोलने का प्रयास करते समय क्रैश हो जाता है।
मैंने देखा है का दावा है कि यह कई एंड्रॉयड क्षुधा में ही फेसबुक एप्लिकेशन का उपयोग करने के लिए संभव है, लेकिन इसके बारे में फेसबुक के दस्तावेज में कुछ भी नहीं मिल सकता है। क्या किसी ने यह किया है, और आप प्रदाता प्राधिकारी की समस्या के आसपास कैसे पहुंचे? धन्यवाद।
में build.gradle
और उसके बाद प्रत्येक स्वाद एक अलग applicationId है, तो आप कुछ इस तरह कर सकता है: http: // stackoverflow .com/एक/30791242/1426565 और प्रकट में प्रदाता की घोषणा में सही applicationId इंजेक्षन, के बाद से $ (applicationId) वास्तव में पैकेज का नाम और न applicationId आप इस के लिए अंत में वापस पाने Gradle – Guardanis
में परिभाषित रिटर्न - मैं जा रहा हूँ कोशिश करने के लिए, लेकिन ऐसा लगता है जैसे ही ऐप एक ही प्राधिकारी स्ट्रिंग के साथ समाप्त होता है, केवल ऐप के बजाय बिल्ड प्रक्रिया से ही। – nasch
आपको बिल्ड-टाइम पर एप्लिकेशन आईडी के आधार पर अलग-अलग मानों को इंजेक्शन देना चाहिए। पिछले सप्ताह से वास्तव में मेरा जवाब यहां दिया गया है जो आपको ऐसा करने में मदद कर सकता है: http://stackoverflow.com/a/30791242/1426565 – Guardanis