freshplanet / ANE-Facebook

Air Native Extension (iOS and Android) for the Facebook mobile SDK
Apache License 2.0
221 stars 123 forks source link

shareLinkDialog on Android is not working for me #181

Closed eitho closed 7 years ago

eitho commented 9 years ago

Hi, Please help me I have a little problem. I try to call Facebook.getInstance().shareLinkDialog on IOS it working fine but on Android is not working (

private var data:Object;

        public function shareLink(name:String, description:String, pictureUrl:String, caption:String = null, link:String = "http://arba.uz"):void
        {
            if(Facebook.isSupported)
            {
                if(!Facebook.getInstance().canPresentShareDialog())
                    Facebook.getInstance().webDialog("feed", {'link':link }, shareHandler);
                else
                {
                    init();

                    data = new Object();
                    data.link = link;
                    data.name = name;
                    data.caption = caption;
                    data.description = description;
                    data.pictureUrl = pictureUrl;

                    if(Facebook.getInstance().isSessionOpen)
                        Facebook.getInstance().shareLinkDialog(link, name, caption, description, pictureUrl, shareHandler, shareHandler);
                    else
                    {
                        Facebook.getInstance().openSessionWithReadPermissions([], onAuthComplete, false);
                        //Facebook.getInstance().openSessionWithPublishPermissions(["publish_actions"], onAuthComplete);
                    }
                }
            }
        }

        private function onAuthComplete(success:Boolean, userCanceled:Boolean, error:String):void
        {
            if(userCanceled || !success)
            {
                //do something
            }
            else
                Facebook.getInstance().shareLinkDialog(data.link, data.name, data.caption, data.description, data.pictureUrl, shareHandler, shareHandler);
        }

        private function shareHandler(data:Object):void{
            trace(JSON.stringify(data));

            closeSession();
        }

On Android after call shareLinkDialog the facebook app screen does not appear on mobile ( The log is empty too.

Selonie commented 9 years ago

Yes - I spent an age coming to the same conclusion - Did you ever find a solution? I can't even get the supplied demo to work properly; requests for additional permissions are not getting called either.

You can remove the call to Facebook.getInstance().shareLinkDialog(bla,bla....) and use the Facebook.getInstance().webDialog(bla, bla..) this works fine - better than nothing but it's not exactly what I wanted. But hey! It’s free - so I'm grateful.

eitho commented 9 years ago

In the latest version of the ANE my code is not working ((((

When I try call Facebook.getInstance().shareLinkDialog(link, name, caption, description, pictureUrl, errorHandler, errorHandler); I got this error:

03-09 17:27:54.652: W/System.err(12548): java.lang.NullPointerException 03-09 17:27:54.652: W/System.err(12548): at com.freshplanet.ane.AirFacebook.functions.BaseFunction.getStringFromFREObject(Unknown Source) 03-09 17:27:54.652: W/System.err(12548): at com.freshplanet.ane.AirFacebook.functions.ShareLinkDialogFunction.call(Unknown Source) 03-09 17:27:54.652: W/System.err(12548): at com.adobe.air.customHandler.callTimeoutFunction(Native Method) 03-09 17:27:54.652: W/System.err(12548): at com.adobe.air.customHandler.callTimeoutFunction(Native Method) 03-09 17:27:54.652: W/System.err(12548): at com.adobe.air.customHandler.handleMessage(customHandler.java:22) 03-09 17:27:54.652: W/System.err(12548): at android.os.Handler.dispatchMessage(Handler.java:99) 03-09 17:27:54.652: W/System.err(12548): at android.os.Looper.loop(Looper.java:137) 03-09 17:27:54.652: W/System.err(12548): at android.app.ActivityThread.main(ActivityThread.java:5103) 03-09 17:27:54.652: W/System.err(12548): at java.lang.reflect.Method.invokeNative(Native Method) 03-09 17:27:54.652: W/System.err(12548): at java.lang.reflect.Method.invoke(Method.java:525) 03-09 17:27:54.660: W/System.err(12548): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 03-09 17:27:54.660: W/System.err(12548): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 03-09 17:27:54.660: W/System.err(12548): at dalvik.system.NativeStart.main(Native Method) 03-09 17:27:54.660: I/ActivityManager(373): START u0 {cmp=air.ssd.uz.arbauz/com.freshplanet.ane.AirFacebook.ShareDialogActivity (has extras)} from pid 12548 03-09 17:27:54.800: W/System.err(12548): java.lang.NullPointerException 03-09 17:27:54.800: W/System.err(12548): at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:883) 03-09 17:27:54.800: W/System.err(12548): at com.facebook.internal.Utility.getDialogFeatureConfig(Unknown Source) 03-09 17:27:54.800: W/System.err(12548): at com.facebook.widget.FacebookDialog.getVersionSpecForFeature(Unknown Source) 03-09 17:27:54.808: W/System.err(12548): at com.facebook.widget.FacebookDialog.getVersionSpecForFeatures(Unknown Source) 03-09 17:27:54.808: W/System.err(12548): at com.facebook.widget.FacebookDialog.access$200(Unknown Source) 03-09 17:27:54.808: W/System.err(12548): at com.facebook.widget.FacebookDialog$Builder.build(Unknown Source) 03-09 17:27:54.808: W/System.err(12548): at com.freshplanet.ane.AirFacebook.ShareDialogActivity.createDialog(Unknown Source) 03-09 17:27:54.808: W/System.err(12548): at com.freshplanet.ane.AirFacebook.DialogLifecycleHelper.onCreate(Unknown Source) 03-09 17:27:54.808: W/System.err(12548): at com.freshplanet.ane.AirFacebook.ShareDialogActivity.onCreate(Unknown Source) 03-09 17:27:54.808: W/System.err(12548): at android.app.Activity.performCreate(Activity.java:5133) 03-09 17:27:54.808: W/System.err(12548): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 03-09 17:27:54.808: W/System.err(12548): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 03-09 17:27:54.808: W/System.err(12548): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 03-09 17:27:54.808: W/System.err(12548): at android.app.ActivityThread.access$600(ActivityThread.java:141) 03-09 17:27:54.808: W/System.err(12548): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 03-09 17:27:54.808: W/System.err(12548): at android.os.Handler.dispatchMessage(Handler.java:99) 03-09 17:27:54.808: W/System.err(12548): at android.os.Looper.loop(Looper.java:137) 03-09 17:27:54.808: W/System.err(12548): at android.app.ActivityThread.main(ActivityThread.java:5103) 03-09 17:27:54.816: W/System.err(12548): at java.lang.reflect.Method.invokeNative(Native Method) 03-09 17:27:54.816: W/System.err(12548): at java.lang.reflect.Method.invoke(Method.java:525) 03-09 17:27:54.816: W/System.err(12548): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 03-09 17:27:54.816: W/System.err(12548): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 03-09 17:27:54.816: W/System.err(12548): at dalvik.system.NativeStart.main(Native Method)

and after call Facebook.getInstance().webDialog("feed", {'link':link }, errorHandler); I got this:

03-09 17:32:44.089: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.089: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.089: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.089: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.089: I/dalvikvm(13120): Could not find method android.support.v4.content.LocalBroadcastManager.getInstance, referenced from method com.facebook.Session.postActiveSessionAction 03-09 17:32:44.089: W/dalvikvm(13120): VFY: unable to resolve static method 747: Landroid/support/v4/content/LocalBroadcastManager;.getInstance (Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager; 03-09 17:32:44.089: D/dalvikvm(13120): VFY: replacing opcode 0x71 at 0x0009 03-09 17:32:44.105: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.105: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.105: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.105: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.113: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.113: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.113: I/dalvikvm(13120): Could not find method android.support.v4.app.Fragment.getActivity, referenced from method com.facebook.widget.FacebookDialog.logDialogActivity 03-09 17:32:44.113: W/dalvikvm(13120): VFY: unable to resolve virtual method 722: Landroid/support/v4/app/Fragment;.getActivity ()Landroid/support/v4/app/FragmentActivity; 03-09 17:32:44.113: D/dalvikvm(13120): VFY: replacing opcode 0x6e at 0x0002 03-09 17:32:44.113: W/dalvikvm(13120): VFY: unable to find class referenced in signature (Landroid/support/v4/app/Fragment;) 03-09 17:32:44.121: I/dalvikvm(13120): Could not find method android.support.v4.app.Fragment.startActivityForResult, referenced from method com.facebook.widget.FacebookDialog.present 03-09 17:32:44.121: W/dalvikvm(13120): VFY: unable to resolve virtual method 732: Landroid/support/v4/app/Fragment;.startActivityForResult (Landroid/content/Intent;I)V 03-09 17:32:44.121: D/dalvikvm(13120): VFY: replacing opcode 0x6e at 0x0030 03-09 17:32:44.128: I/ActivityManager(373): START u0 {cmp=air.ssd.uz.arbauz/com.freshplanet.ane.AirFacebook.WebDialogActivity (has extras)} from pid 13120 03-09 17:32:44.246: D/AirFacebook(13120): WebDialogActivity.onCreate 03-09 17:32:44.292: D/dalvikvm(13120): GC_CONCURRENT freed 479K, 8% free 9314K/10032K, paused 3ms+3ms, total 28ms 03-09 17:32:44.332: W/ResourceType(13120): getEntry failing because entryIndex 19 is beyond type entryCount 12 03-09 17:32:44.332: W/ResourceType(13120): Failure getting entry for 0x7f070013 (t=6 e=19) in package 0 (error -2147483647) 03-09 17:32:44.332: D/AndroidRuntime(13120): Shutting down VM 03-09 17:32:44.332: W/dalvikvm(13120): threadid=1: thread exiting with uncaught exception (group=0x41928700) 03-09 17:32:44.339: E/AndroidRuntime(13120): FATAL EXCEPTION: main 03-09 17:32:44.339: E/AndroidRuntime(13120): java.lang.RuntimeException: Unable to start activity ComponentInfo{air.ssd.uz.arbauz/com.freshplanet.ane.AirFacebook.WebDialogActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x7f070013 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.ActivityThread.access$600(ActivityThread.java:141) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.os.Handler.dispatchMessage(Handler.java:99) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.os.Looper.loop(Looper.java:137) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.ActivityThread.main(ActivityThread.java:5103) 03-09 17:32:44.339: E/AndroidRuntime(13120): at java.lang.reflect.Method.invokeNative(Native Method) 03-09 17:32:44.339: E/AndroidRuntime(13120): at java.lang.reflect.Method.invoke(Method.java:525) 03-09 17:32:44.339: E/AndroidRuntime(13120): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 03-09 17:32:44.339: E/AndroidRuntime(13120): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 03-09 17:32:44.339: E/AndroidRuntime(13120): at dalvik.system.NativeStart.main(Native Method) 03-09 17:32:44.339: E/AndroidRuntime(13120): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f070013 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.content.res.Resources.getText(Resources.java:239) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.content.res.Resources.getString(Resources.java:325) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.content.Context.getString(Context.java:334) 03-09 17:32:44.339: E/AndroidRuntime(13120): at com.facebook.widget.WebDialog.onCreate(Unknown Source) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.Dialog.dispatchOnCreate(Dialog.java:355) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.Dialog.show(Dialog.java:260) 03-09 17:32:44.339: E/AndroidRuntime(13120): at com.freshplanet.ane.AirFacebook.WebDialogActivity.onCreate(Unknown Source) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.Activity.performCreate(Activity.java:5133) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 03-09 17:32:44.339: E/AndroidRuntime(13120): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 03-09 17:32:44.339: E/AndroidRuntime(13120): ... 11 more

Please somebody help me to fix this (

mattmurton commented 9 years ago

Give the version on my pull request a go #200 . It might solve your issues. Let me know how it goes.