1

I followed the method to post facebook status updates without their dialog box from this answer on SO: https://stackoverflow.com/a/7528388/450534

I can post status updates from the apps activity, but it is still generating warnings.

Its a mighty long list of warnings from the DDMS. Any advise on fixing the problem is appreciated.

The code:

protected void postToWall(String message) {

        if (!Utility.mFacebook.isSessionValid()) {
            Util.showAlert(this, "Warning", "You must first log in.");
        }

        Log.d("Tests", "Testing graph API wall post");
        try {
            String response = Utility.mFacebook.request("me");
            Bundle parameters = new Bundle();
            parameters.putString("message", txtPostToWall.getText().toString());
//          parameters.putString("description", getString(R.string.app_desc));

            response = Utility.mFacebook.request("me/feed", parameters, "POST");
            txtPostToWall.setText("");
            this.finish();

            Log.d("Tests", "got response: " + response);

            if (response == null || response.equals("") ||  response.equals("false"))   {
                Log.v("Error", "Blank response");
            }
        }
        catch(Exception e)  {
            e.printStackTrace();
        }
    }

The DDMS warnings: (Very very lengthy.)

03-30 20:02:53.290: W/Bundle(17941): Key message expected byte[] but value was a java.lang.String.  The default value <null> was returned.
    03-30 20:02:53.306: W/Bundle(17941): Attempt to cast generated internal exception:
    03-30 20:02:53.306: W/Bundle(17941): java.lang.ClassCastException: java.lang.String
    03-30 20:02:53.306: W/Bundle(17941):    at android.os.Bundle.getByteArray(Bundle.java:1305)
    03-30 20:02:53.306: W/Bundle(17941):    at com.facebook.android.Util.openUrl(Util.java:161)
    03-30 20:02:53.306: W/Bundle(17941):    at com.facebook.android.Facebook.request(Facebook.java:751)
    03-30 20:02:53.306: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate.postToWall(StatusUpdate.java:68)
    03-30 20:02:53.306: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate$2.onClick(StatusUpdate.java:48)
    03-30 20:02:53.306: W/Bundle(17941):    at android.view.View.performClick(View.java:2538)
    03-30 20:02:53.306: W/Bundle(17941):    at android.view.View$PerformClick.run(View.java:9152)
    03-30 20:02:53.306: W/Bundle(17941):    at android.os.Handler.handleCallback(Handler.java:587)
    03-30 20:02:53.306: W/Bundle(17941):    at android.os.Handler.dispatchMessage(Handler.java:92)
    03-30 20:02:53.306: W/Bundle(17941):    at android.os.Looper.loop(Looper.java:130)
    03-30 20:02:53.306: W/Bundle(17941):    at android.app.ActivityThread.main(ActivityThread.java:3687)
    03-30 20:02:53.306: W/Bundle(17941):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-30 20:02:53.306: W/Bundle(17941):    at java.lang.reflect.Method.invoke(Method.java:507)
    03-30 20:02:53.306: W/Bundle(17941):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    03-30 20:02:53.306: W/Bundle(17941):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    03-30 20:02:53.306: W/Bundle(17941):    at dalvik.system.NativeStart.main(Native Method)
    03-30 20:02:53.310: W/Bundle(17941): Key access_token expected byte[] but value was a java.lang.String.  The default value <null> was returned.
    03-30 20:02:53.325: W/Bundle(17941): Attempt to cast generated internal exception:
    03-30 20:02:53.325: W/Bundle(17941): java.lang.ClassCastException: java.lang.String
    03-30 20:02:53.325: W/Bundle(17941):    at android.os.Bundle.getByteArray(Bundle.java:1305)
    03-30 20:02:53.325: W/Bundle(17941):    at com.facebook.android.Util.openUrl(Util.java:161)
    03-30 20:02:53.325: W/Bundle(17941):    at com.facebook.android.Facebook.request(Facebook.java:751)
    03-30 20:02:53.325: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate.postToWall(StatusUpdate.java:68)
    03-30 20:02:53.325: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate$2.onClick(StatusUpdate.java:48)
    03-30 20:02:53.325: W/Bundle(17941):    at android.view.View.performClick(View.java:2538)
    03-30 20:02:53.325: W/Bundle(17941):    at android.view.View$PerformClick.run(View.java:9152)
    03-30 20:02:53.325: W/Bundle(17941):    at android.os.Handler.handleCallback(Handler.java:587)
    03-30 20:02:53.325: W/Bundle(17941):    at android.os.Handler.dispatchMessage(Handler.java:92)
    03-30 20:02:53.325: W/Bundle(17941):    at android.os.Looper.loop(Looper.java:130)
    03-30 20:02:53.325: W/Bundle(17941):    at android.app.ActivityThread.main(ActivityThread.java:3687)
    03-30 20:02:53.325: W/Bundle(17941):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-30 20:02:53.325: W/Bundle(17941):    at java.lang.reflect.Method.invoke(Method.java:507)
    03-30 20:02:53.325: W/Bundle(17941):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    03-30 20:02:53.325: W/Bundle(17941):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    03-30 20:02:53.325: W/Bundle(17941):    at dalvik.system.NativeStart.main(Native Method)
    03-30 20:02:53.325: W/Bundle(17941): Key format expected byte[] but value was a java.lang.String.  The default value <null> was returned.
    03-30 20:02:53.341: W/Bundle(17941): Attempt to cast generated internal exception:
    03-30 20:02:53.341: W/Bundle(17941): java.lang.ClassCastException: java.lang.String
    03-30 20:02:53.341: W/Bundle(17941):    at android.os.Bundle.getByteArray(Bundle.java:1305)
    03-30 20:02:53.341: W/Bundle(17941):    at com.facebook.android.Util.openUrl(Util.java:161)
    03-30 20:02:53.341: W/Bundle(17941):    at com.facebook.android.Facebook.request(Facebook.java:751)
    03-30 20:02:53.341: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate.postToWall(StatusUpdate.java:68)
    03-30 20:02:53.341: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate$2.onClick(StatusUpdate.java:48)
    03-30 20:02:53.341: W/Bundle(17941):    at android.view.View.performClick(View.java:2538)
    03-30 20:02:53.341: W/Bundle(17941):    at android.view.View$PerformClick.run(View.java:9152)
    03-30 20:02:53.341: W/Bundle(17941):    at android.os.Handler.handleCallback(Handler.java:587)
    03-30 20:02:53.341: W/Bundle(17941):    at android.os.Handler.dispatchMessage(Handler.java:92)
    03-30 20:02:53.341: W/Bundle(17941):    at android.os.Looper.loop(Looper.java:130)
    03-30 20:02:53.341: W/Bundle(17941):    at android.app.ActivityThread.main(ActivityThread.java:3687)
    03-30 20:02:53.341: W/Bundle(17941):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-30 20:02:53.341: W/Bundle(17941):    at java.lang.reflect.Method.invoke(Method.java:507)
    03-30 20:02:53.341: W/Bundle(17941):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    03-30 20:02:53.341: W/Bundle(17941):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    03-30 20:02:53.341: W/Bundle(17941):    at dalvik.system.NativeStart.main(Native Method)
    03-30 20:02:53.353: W/Bundle(17941): Key message expected byte[] but value was a java.lang.String.  The default value <null> was returned.
    03-30 20:02:53.368: W/Bundle(17941): Attempt to cast generated internal exception:
    03-30 20:02:53.368: W/Bundle(17941): java.lang.ClassCastException: java.lang.String
    03-30 20:02:53.368: W/Bundle(17941):    at android.os.Bundle.getByteArray(Bundle.java:1305)
    03-30 20:02:53.368: W/Bundle(17941):    at com.facebook.android.Util.encodePostBody(Util.java:69)
    03-30 20:02:53.368: W/Bundle(17941):    at com.facebook.android.Util.openUrl(Util.java:188)
    03-30 20:02:53.368: W/Bundle(17941):    at com.facebook.android.Facebook.request(Facebook.java:751)
    03-30 20:02:53.368: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate.postToWall(StatusUpdate.java:68)
    03-30 20:02:53.368: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate$2.onClick(StatusUpdate.java:48)
    03-30 20:02:53.368: W/Bundle(17941):    at android.view.View.performClick(View.java:2538)
    03-30 20:02:53.368: W/Bundle(17941):    at android.view.View$PerformClick.run(View.java:9152)
    03-30 20:02:53.368: W/Bundle(17941):    at android.os.Handler.handleCallback(Handler.java:587)
    03-30 20:02:53.368: W/Bundle(17941):    at android.os.Handler.dispatchMessage(Handler.java:92)
    03-30 20:02:53.368: W/Bundle(17941):    at android.os.Looper.loop(Looper.java:130)
    03-30 20:02:53.368: W/Bundle(17941):    at android.app.ActivityThread.main(ActivityThread.java:3687)
    03-30 20:02:53.368: W/Bundle(17941):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-30 20:02:53.368: W/Bundle(17941):    at java.lang.reflect.Method.invoke(Method.java:507)
    03-30 20:02:53.368: W/Bundle(17941):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    03-30 20:02:53.368: W/Bundle(17941):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    03-30 20:02:53.368: W/Bundle(17941):    at dalvik.system.NativeStart.main(Native Method)
    03-30 20:02:53.368: W/Bundle(17941): Key method expected byte[] but value was a java.lang.String.  The default value <null> was returned.
    03-30 20:02:53.384: W/Bundle(17941): Attempt to cast generated internal exception:
    03-30 20:02:53.384: W/Bundle(17941): java.lang.ClassCastException: java.lang.String
    03-30 20:02:53.384: W/Bundle(17941):    at android.os.Bundle.getByteArray(Bundle.java:1305)
    03-30 20:02:53.384: W/Bundle(17941):    at com.facebook.android.Util.encodePostBody(Util.java:69)
    03-30 20:02:53.384: W/Bundle(17941):    at com.facebook.android.Util.openUrl(Util.java:188)
    03-30 20:02:53.384: W/Bundle(17941):    at com.facebook.android.Facebook.request(Facebook.java:751)
    03-30 20:02:53.384: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate.postToWall(StatusUpdate.java:68)
    03-30 20:02:53.384: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate$2.onClick(StatusUpdate.java:48)
    03-30 20:02:53.384: W/Bundle(17941):    at android.view.View.performClick(View.java:2538)
    03-30 20:02:53.384: W/Bundle(17941):    at android.view.View$PerformClick.run(View.java:9152)
    03-30 20:02:53.384: W/Bundle(17941):    at android.os.Handler.handleCallback(Handler.java:587)
    03-30 20:02:53.384: W/Bundle(17941):    at android.os.Handler.dispatchMessage(Handler.java:92)
    03-30 20:02:53.384: W/Bundle(17941):    at android.os.Looper.loop(Looper.java:130)
    03-30 20:02:53.384: W/Bundle(17941):    at android.app.ActivityThread.main(ActivityThread.java:3687)
    03-30 20:02:53.384: W/Bundle(17941):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-30 20:02:53.384: W/Bundle(17941):    at java.lang.reflect.Method.invoke(Method.java:507)
    03-30 20:02:53.384: W/Bundle(17941):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    03-30 20:02:53.384: W/Bundle(17941):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    03-30 20:02:53.384: W/Bundle(17941):    at dalvik.system.NativeStart.main(Native Method)
    03-30 20:02:53.388: W/Bundle(17941): Key access_token expected byte[] but value was a java.lang.String.  The default value <null> was returned.
    03-30 20:02:53.403: W/Bundle(17941): Attempt to cast generated internal exception:
    03-30 20:02:53.403: W/Bundle(17941): java.lang.ClassCastException: java.lang.String
    03-30 20:02:53.403: W/Bundle(17941):    at android.os.Bundle.getByteArray(Bundle.java:1305)
    03-30 20:02:53.403: W/Bundle(17941):    at com.facebook.android.Util.encodePostBody(Util.java:69)
    03-30 20:02:53.403: W/Bundle(17941):    at com.facebook.android.Util.openUrl(Util.java:188)
    03-30 20:02:53.403: W/Bundle(17941):    at com.facebook.android.Facebook.request(Facebook.java:751)
    03-30 20:02:53.403: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate.postToWall(StatusUpdate.java:68)
    03-30 20:02:53.403: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate$2.onClick(StatusUpdate.java:48)
    03-30 20:02:53.403: W/Bundle(17941):    at android.view.View.performClick(View.java:2538)
    03-30 20:02:53.403: W/Bundle(17941):    at android.view.View$PerformClick.run(View.java:9152)
    03-30 20:02:53.403: W/Bundle(17941):    at android.os.Handler.handleCallback(Handler.java:587)
    03-30 20:02:53.403: W/Bundle(17941):    at android.os.Handler.dispatchMessage(Handler.java:92)
    03-30 20:02:53.403: W/Bundle(17941):    at android.os.Looper.loop(Looper.java:130)
    03-30 20:02:53.403: W/Bundle(17941):    at android.app.ActivityThread.main(ActivityThread.java:3687)
    03-30 20:02:53.403: W/Bundle(17941):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-30 20:02:53.403: W/Bundle(17941):    at java.lang.reflect.Method.invoke(Method.java:507)
    03-30 20:02:53.403: W/Bundle(17941):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    03-30 20:02:53.403: W/Bundle(17941):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    03-30 20:02:53.403: W/Bundle(17941):    at dalvik.system.NativeStart.main(Native Method)
    03-30 20:02:53.403: W/Bundle(17941): Key format expected byte[] but value was a java.lang.String.  The default value <null> was returned.
    03-30 20:02:53.423: W/Bundle(17941): Attempt to cast generated internal exception:
    03-30 20:02:53.423: W/Bundle(17941): java.lang.ClassCastException: java.lang.String
    03-30 20:02:53.423: W/Bundle(17941):    at android.os.Bundle.getByteArray(Bundle.java:1305)
    03-30 20:02:53.423: W/Bundle(17941):    at com.facebook.android.Util.encodePostBody(Util.java:69)
    03-30 20:02:53.423: W/Bundle(17941):    at com.facebook.android.Util.openUrl(Util.java:188)
    03-30 20:02:53.423: W/Bundle(17941):    at com.facebook.android.Facebook.request(Facebook.java:751)
    03-30 20:02:53.423: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate.postToWall(StatusUpdate.java:68)
    03-30 20:02:53.423: W/Bundle(17941):    at com.dzinesunlimited.sociallyyou.StatusUpdate$2.onClick(StatusUpdate.java:48)
    03-30 20:02:53.423: W/Bundle(17941):    at android.view.View.performClick(View.java:2538)
    03-30 20:02:53.423: W/Bundle(17941):    at android.view.View$PerformClick.run(View.java:9152)
    03-30 20:02:53.423: W/Bundle(17941):    at android.os.Handler.handleCallback(Handler.java:587)
    03-30 20:02:53.423: W/Bundle(17941):    at android.os.Handler.dispatchMessage(Handler.java:92)
    03-30 20:02:53.423: W/Bundle(17941):    at android.os.Looper.loop(Looper.java:130)
    03-30 20:02:53.423: W/Bundle(17941):    at android.app.ActivityThread.main(ActivityThread.java:3687)
    03-30 20:02:53.423: W/Bundle(17941):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-30 20:02:53.423: W/Bundle(17941):    at java.lang.reflect.Method.invoke(Method.java:507)
    03-30 20:02:53.423: W/Bundle(17941):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    03-30 20:02:53.423: W/Bundle(17941):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    03-30 20:02:53.423: W/Bundle(17941):    at dalvik.system.NativeStart.main(Native Method)

Any help is really appreciated.

Community
  • 1
  • 1
Siddharth Lele
  • 27,623
  • 15
  • 98
  • 151

1 Answers1

2

Well well well. I feel like a total moron for having ignored the important warnings..... :-(

The trick was to change the Util.java in the Facebook SDK at line 69 from:

if (parameters.getByteArray(key) != null) {

to:

if (parameters.get(key) instanceof byte[]) {

Thanks to the solution posted here: https://stackoverflow.com/a/3927541/450534

Community
  • 1
  • 1
Siddharth Lele
  • 27,623
  • 15
  • 98
  • 151