繁体   English   中英

Android中的Facebook发布错误

[英]Facebook Posting Error in Android

我有一个问题,我在Facebook上发布了一条字符串消息,但是在发布时却遇到了一些错误,我不知道为什么,因为相同的代码正在不同的项目中运行。 请帮助我。

错误堆栈:

10-19 11:40:43.065: ERROR/AndroidRuntime(7466): FATAL EXCEPTION: main
10-19 11:40:43.065: ERROR/AndroidRuntime(7466): java.lang.NullPointerException
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at com.halosys.TvAnyTime.VideoPlayer$7.onClick(VideoPlayer.java:304)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at android.view.View.performClick(View.java:2408)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at android.view.View$PerformClick.run(View.java:8818)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at android.os.Handler.handleCallback(Handler.java:587)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at android.os.Looper.loop(Looper.java:123)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at java.lang.reflect.Method.invokeNative(Native Method)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at java.lang.reflect.Method.invoke(Method.java:521)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at dalvik.system.NativeStart.main(Native Method)

新代码:

// Bundle参数= new Bundle(); 字符串str_post = null; if(rating.equals(“”)){str_post =“ TV Anytime允许您免费在iPhone,iPad或PC上观看喜爱的节目和电影,而无需网络。TVAnytime是第一个免费的流式视频DVR,适用于您的iPhone,iPad或PC。\\ n“ + name +”刚刚通过TvAnytime在iPhone上观看了“ + MovieName +”!\\ n“ + ed_Post.getText()。toString()+”“; } else {str_post =“ TV Anytime可以让您免费在iPhone,iPad或PC上观看喜爱的节目和电影,而无需网络。TVAnytime是iPhone,iPad或PC上第一个免费的流式视频DVR。\\ n“ + name +”刚刚用TvAnytime在iPhone上观看了“ + MovieName +”!\\ n“ + ed_Post.getText()。toString()+” \\ n评级“ + rating +”(满分5分); } //parameters.putString("message“,str_post); //IntroFaceBookScreen.mFacebook.authorize(VideoPlayer.this,new String [] {“ publish_stream”,“ read_stream”,“ offline_access”},IntroFaceBookScreen.mFacebook.FORCE_DIALOG_AUTH,new FacebookDialogListener(VideoPlayer.this)); / *字符串响应= null; 尝试{response = mFacebook.request(“ me”); } catch(MalformedURLException e){// TODO自动生成的catch块e.printStackTrace(); } catch(IOException e){// TODO自动生成的catch块e.printStackTrace(); } Bundle参数= new Bundle(); parameters.putString(“ message”,str_post); //发布图片代码

                    Bitmap bm = BitmapFactory.decodeFile("/sdcard/showIcon/show_S00275.png");
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();  
                    bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object   
                    byte[] imgData = baos.toByteArray(); 


                    parameters.putByteArray("picture", imgData);




                    parameters.putString("description", "test test test");
                    try {

                        response = mFacebook.request("me/feed", parameters, "POST");
                    } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (MalformedURLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    Log.d("Tests", "got response: " + response);
                    if (response == null || response.equals("") || 
                            response.equals("false")) {
                       Log.v("Error", "Blank response");
                    }*/
                    post_to_wall(str_post);
                    /* mFacebook.dialog(VideoPlayer.this, "feed",
                                new SampleDialogListener());*/
                    dismissDialog(0);
                }
            });

        btn_Cancel.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {

                removeDialog(0);
            }
        });

        break;
}
return dialog;

} protected void post_to_wall(String str_post){

 try{
      Bitmap bm = BitmapFactory.decodeFile("/sdcard/showIcon/show_S00275.png");
      ByteArrayOutputStream baos = new ByteArrayOutputStream();  
      bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object   
      byte[] imgData = baos.toByteArray(); 
      Bundle parameters = new Bundle();
      parameters.putString("message", "Test Post in Facebook Wal");
      parameters.putString("description", str_post);
      parameters.putByteArray("picture", imgData);
      String  response = mFacebook.request("me/feed",parameters,"POST");       
      Log.v("response", response);
   }
   catch(Exception e){
       System.out.println("The error Message = "+e);
   }

}

10-19 11:40:43.065: ERROR/AndroidRuntime(7466): java.lang.NullPointerException
10-19 11:40:43.065: ERROR/AndroidRuntime(7466):     at com.halosys.TvAnyTime.VideoPlayer$7.onClick(VideoPlayer.java:304)

在Logcat中,空指针出现在行号:304中。

因此,请检查由于墙上张贴将位图转换为byteArray导致的错误

尝试像这样在Facebook墙上发布Call a Method并传递必要的参数,例如:

post_on_wall(decription); 

将参数传递给方法,简单地将代码传递给您,即可为您提供外观:

 post_on_wall(String desc) {
    try{
      Bundle parameters = new Bundle();
      parameters.putString("message", "Test Post in Facebook Wal");
      parameters.putString("description", desc);
      String  response = facebook.request("me/feed",parameters,"POST");       
      Log.v("response", response);
   }
   catch(Exception e){}
 }

有关在Facebook墙上张贴的更多示例,请检查在墙上张贴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM