6

Birden çok productFlavors ile bir Android uygulaması yapıyorum ve giriş ve paylaşım içeriği için Facebook SDK v4.1'i kullanıyorum. Sorun şu ki, aynı uygulamayı yüklü olan bir cihaza bir uygulama yüklemeye çalıştığımda (ama farklı lezzet), bir hata ortaya çıkarır. Mevcut olanı kaldırmazsam ikinci uygulamayı yüklememe izin vermez.INSTALL_FAILED_CONFLICTING_PROVIDER

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

bu document göre, android:authorities benzersiz olmalıdır ve ben ne yapmak istediğinizi başarmak için birden kimlik doğrulamalrını sahip olmalıdır. Ancak, birden fazla Facebook Uygulaması'na sahip olamıyorum ve bu sorunu çözmenin daha iyi bir yolu olup olmadığını merak ediyordum. Bana yardımcı olabilecek herkese şimdiden teşekkürler!

+0

'robot: = "com.facebook.app.FacebookContentProvider {my_app_id}"' benzersiz olması gerekir otoriteler. Aynı yetkilileri olan başka bir uygulama gibi görünüyor. Http://stackoverflow.com/questions/21271246/install-failed-conflicting-provider-in-android –

+1

@PankajKumar adresinden okuyabilirsiniz. Lütfen sorumu dikkatlice okuyun. –

+0

Bu sorun için şimdi bir çözüm var mı? – Wayne

cevap

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

Bu, mevcut sağlayıcı tanımından nasıl farklıdır? – Lima

+0

Kopyalanan aynı kodu sorgunuzu ve çözümü için koddaki fark nedir – Pankaj

-1

Bunu kullanabilirsiniz:

Manifest

<provider android:authorities="@string/facebook_app_authority" 
     android:name="com.facebook.FacebookContentProvider" 
     android:exported="true" /> 

Gradle

productFlavors { 
    flavor1 { 
     applicationId "com.id.flavor1" 
     versionCode 1 
     versionName "1.0.0" 
     resValue "string", "facebook_app_authority", "com.facebook.app.FacebookContentProvider0000000000000000" 
    } 
    flavor2 { 
     applicationId "com.id.flavor2" 
     versionCode 1 
     versionName "1.0.0" 
     resValue "string", "facebook_app_authority", "com.facebook.app.FacebookContentProvider0000000000000001" 
    } 
} 

App id 0000000000000000 değiştirin

3

aşağıda deneyin:

Bildirim

<provider android:authorities="com.facebook.app.FacebookContentProvider${facebookId}" 
     android:name="com.facebook.FacebookContentProvider" 
     android:exported="true" /> 
<meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="fb${facebookId}"/> 

Gradle

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.1" 
    defaultConfig { 
     applicationId "com.your.package" 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 

     manifestPlaceholders = [facebookId:"123456789"] 
    } 

    productFlavors { 
    debug { 
     applicationIdSuffix ".debug" 
     manifestPlaceholders = [facebookId:"1234"] 
    } 
    release { 
     applicationIdSuffix ".pro" 
     manifestPlaceholders = [facebookId:"123456789"] 
    } 
} 
+2

Harika bir soru, bir soru, neden fb $ {facebookId} önce "fb" ye ihtiyacınız var? – AndroidRuntimeException