2017-04-12 42 views
0

我想從Android應用程序在Facebook上分享照片。我從圖庫中獲取圖像並創建一個位圖,然後使用setShareContent方法將其發送到Facebook。無法從Facebook分享Facebook中的照片

當你運行應用程序,日誌這樣說:沒有匹配的活動簡歷

意外的活動暫停。記錄數據可能不正確。確保您從應用程序的onCreate()方法中撥打activateApp

我有以下代碼:

MainActivity.java

public class MainActivity extends AppCompatActivity { 

    ShareButton shareButton; 
    FloatingActionButton selectImageFromGalleryBtn; 
    Bitmap bitmap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     shareButton = (ShareButton) findViewById(R.id.shareButton); 
     selectImageFromGalleryBtn = (FloatingActionButton) findViewById(R.id.selectImageFromGalleryBtn); 

     selectImageFromGalleryBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
       startActivityForResult(intent, 0); 
      } 
     }); 

     SharePhoto photo = new SharePhoto.Builder() 
      .setBitmap(bitmap) 
      .build(); 

     SharePhotoContent content = new SharePhotoContent.Builder() 
      .addPhoto(photo) 
      .build(); 

     shareButton.setShareContent(content); 
    } 
} 

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.dchurches.sharevideofacebook"> 

    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/MyMaterialTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

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

     <provider 
       android:authorities="com.facebook.app.FacebookContentProviderXXXXXXXXXXXXXXX" 
      android:name="com.facebook.FacebookContentProvider" 
      android:exported="true"/> 
    </application> 

</manifest> 

我跟着Facebook開發文檔分享照片,但它沒有t似乎工作。有誰能夠幫助我?在此先感謝

+0

發表您的應用程序類(即擴展應用程序的類) – sravs

回答

0

你需要寫一個擴展應用類和初始化FB和記錄儀如下

public class AppCtrl extends Application { 

@Override 
public void onCreate() { 
    super.onCreate(); 
    // Initialize the SDK before executing any other operations, 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    AppEventsLogger.activateApp(this); 
    } 
} 

,並定義了這個類清單的應用程序標籤,如下

<application android:name="AppCtrl" 
     ...> 
    </application> 
+0

它已經嘗試過,並且不起作用。無論如何,根據官方文檔,在最新版本的Facebook SDK中,特別是從4.x開始,不需要顯式初始化SDK,它會自動啓動。感謝您的回答! –

+0

是否嘗試添加此行AppEventsLogger.activateApp(this);?因爲您的錯誤說要添加此 – sravs

+0

是的,我添加了該行,但Android Studio將activateApp方法設置爲棄用,並且執行中沒有任何更改 –