2017-04-12 78 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方法设置为弃用,并且执行中没有任何更改 –