错误Facebook共享对话框 [英] Error in Facebook Share Dialog

查看:326
本文介绍了错误Facebook共享对话框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了一个不同的错误。我试着做了Facebook共享对话框但是我在logcat中遇到此错误。

  15 10-17:44:39.026:E / AndroidRuntime(2534):com.facebook.FacebookException:无法创建意图;这可能意味着Facebook应用程序未安装。

我不知道这意味着什么。我试图寻找它,但有没有类似的实例。这里是我的code。

TabFour.java

 公共类TabFour扩展片段{
私人UiLifecycleHelper uiHelper;
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){
    查看rootView = inflater.inflate(R.layout.activity_tab_four,集装箱,FALSE);    返回rootView;
}@覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    uiHelper =新UiLifecycleHelper(getActivity(),回调);
    uiHelper.onCreate(savedInstanceState);    OpenGraphAction行动= GraphObject.Factory.create(OpenGraphAction.class);
    action.setProperty(书,https://example.com/book/Snow-Crash.html);    @燮pressWarnings(德precation)
    FacebookDialog shareDialog =新FacebookDialog.OpenGraphActionDialogBu​​ilder(getActivity(),动作,books.reads,书)
            。建立();
    uiHelper.trackPendingDialogCall(shareDialog present());
}
@覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
    super.onActivityResult(要求code,结果code,数据);    uiHelper.onActivityResult(要求code,结果code,数据,新FacebookDialog.Callback(){
        @覆盖
        公共无效onerror的(FacebookDialog.PendingCall pendingCall,异常错误,捆绑数据){
            Log.e(活动,的String.format(错误:%s,error.toString()));
        }        @覆盖
        公共无效的onComplete(FacebookDialog.PendingCall pendingCall,捆绑数据){
            Log.i(活动,成功!);
        }
    });
}@覆盖
公共无效onResume(){
    super.onResume();
    uiHelper.onResume();
}@覆盖
公共无效的onSaveInstanceState(捆绑outState){
    super.onSaveInstanceState(outState);
    uiHelper.onSaveInstanceState(outState);
}@覆盖
公共无效的onPause(){
    super.onPause();
    uiHelper.onPause();
}@覆盖
公共无效的onDestroy(){
    super.onDestroy();
    uiHelper.onDestroy();
}
私人Session.StatusCallback回调=新Session.StatusCallback(){
    @覆盖
    公共无效呼叫(会话的会话,SessionState会的状态,
            例外的例外){
        // TODO自动生成方法存根    }
};}

下面是我的logcat:

http://shrib.com/nointentstuff


解决方案

  

com.facebook.FacebookException:无法创建意图;这可能
  是指未安装Facebook应用程序


第2步引用@的https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/

Facebook的SDK使用Facebook的本机应用程序提供认证支持时,它的present。在真实设备上,你可以通过简单的安装此应用程序从谷歌玩免费测试。但是,它不能访问谷歌在模拟器上播放。如果你想测试的流程里面,我们包括可以安装SDK的副本。

Facebook应用程序的安装APK是在SDK的bin文件夹,并命名为FBAndroid-3.5.apk或相似。要安装它到一个Android模拟器,你首先需要启动模拟器。

其次,找到你的主要Android SDK中的平台工具目录下的ADB工具。在OS X中,当你解压Android SDK中,你会选择了这个位置。在Windows上,SDK安装到你的主目录下的应用程序数据\\本地\\ Android的\\ Android的SDK

假设您放置Facebook的SDK在你的home目录下,你使用adb的APK安装在OS X这样的运行模拟器:

  ./ ADB安装〜/ Facebook的Andr​​oid的SDK-3.5 /斌/ FBAndroid-3.5.apk

和Windows上,类似这样的:

ADB安装%HOMEPATH%\\ Facebook的Andr​​oid的SDK-3.5 \\ BIN \\ FBAndroid,3.5.apk
一旦完成后,检查仿真器的应用程序屏幕可检查应用程序已正确安装。如果您需要强制从previous版本的应用升级,添加-r标志,这样在OS X:

  ./ ADB安装-r〜/ Facebook的Andr​​oid的SDK-3.5 /斌/ FBAndroid-3.5.apk

I encountered an unlike error. I tried to do the Facebook Share Dialog however I encountered this error in the logcat.

 10-17 15:44:39.026: E/AndroidRuntime(2534): com.facebook.FacebookException: Unable to create Intent; this likely means the Facebook app is not installed.

I have no idea what this means. I tried to search for it but there is no similar instance. Here is my code.

TabFour.java

public class TabFour extends Fragment {
private UiLifecycleHelper uiHelper;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.activity_tab_four, container, false);

    return rootView;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    uiHelper = new UiLifecycleHelper(getActivity(), callback);
    uiHelper.onCreate(savedInstanceState);

    OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
    action.setProperty("book", "https://example.com/book/Snow-Crash.html");

    @SuppressWarnings("deprecation")
    FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(getActivity(), action, "books.reads", "book")
            .build();
    uiHelper.trackPendingDialogCall(shareDialog.present());
}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    uiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback() {
        @Override
        public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data) {
            Log.e("Activity", String.format("Error: %s", error.toString()));
        }

        @Override
        public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data) {
            Log.i("Activity", "Success!");
        }
    });
}



@Override
public void onResume() {
    super.onResume();
    uiHelper.onResume();
}

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    uiHelper.onSaveInstanceState(outState);
}

@Override
public void onPause() {
    super.onPause();
    uiHelper.onPause();
}

@Override
public void onDestroy() {
    super.onDestroy();
    uiHelper.onDestroy();
}
private Session.StatusCallback callback = new Session.StatusCallback() {


    @Override
    public void call(Session session, SessionState state,
            Exception exception) {
        // TODO Auto-generated method stub

    }
};

}

Here is my logcat.:

http://shrib.com/nointentstuff

解决方案

com.facebook.FacebookException: Unable to create Intent; this likely means the Facebook app is not installed

Quoting from step 2 @ https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/

The Facebook SDK uses Facebook's native app to provide support for authentication when it's present. On a real device, you can test this by simply installing this app for free from Google Play. However, it's not possible to access Google Play on an emulator. If you want to test the flow there, we include a copy in the SDK that you can install.

The installable APK of the Facebook app is in the bin folder of the SDK, and named FBAndroid-3.5.apk or similar. To install it onto an Android emulator, you'll first need to start the emulator.

Secondly, locate the adb tool in the platform-tools directory of your main Android SDK. On OS X, you will have chosen this location when you unzipped the Android SDK. On Windows, the SDK is installed into your home directory, under AppData\Local\Android\android-sdk

Assuming you've placed the Facebook SDK in your home directory, you use adb to install the APK to the running emulator in OS X like this:

./adb install ~/facebook-android-sdk-3.5/bin/FBAndroid-3.5.apk

And on Windows, like this:

adb install %HOMEPATH%\facebook-android-sdk-3.5\bin\FBAndroid-3.5.apk Once complete, check the apps screen of the emulator to check that the app has been installed correctly. If you need to force the upgrade of this app from a previous version, add the -r flag, like this on OS X:

./adb install -r ~/facebook-android-sdk-3.5/bin/FBAndroid-3.5.apk

这篇关于错误Facebook共享对话框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆