在我的Android应用程序中在FB上发布状态时出错

时间:2013-10-17 16:18:24

标签: android facebook

无法解决以下代码中的错误:

     public class MainActivity extends Activity implements LoginListener{

    EditText et1;
     private FBLoginManager fbLoginManager;
     Button b;

     //replace it with your own Facebook App ID
     public final String FacebookTesting="218874471621782";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et1=(EditText)findViewById(R.id.editText1);
        b=(Button)findViewById(R.id.button1);
        connectToFacebook();

    }


     public void connectToFacebook(){

          //read about Facebook Permissions here:
          //http://developers.facebook.com/docs/reference/api/permissions/
          String permissions[] = {
    //          "user_about_me",
    //          "user_activities", 
    //          "user_birthday",
    //          "user_checkins",
    //          "user_education_history",
    //          "user_events",
    //          "user_groups", 
    //          "user_hometown",
     //         "user_interests",
    //          "user_likes",  
    //          "user_location",
    //          "user_notes",
    //          "user_online_presence",
    //          "user_photo_video_tags",
    //          "user_photos",
    //          "user_relationships",
    //          "user_relationship_details",
    //          "user_religion_politics",
    //              "user_status",
    //          "user_videos",
    //          "user_website",
    //          "user_work_history",
    //          "email",
    //
    //          "read_friendlists",
    //          "read_insights",
    //          "read_mailbox",
    //          "read_requests",
    //          "read_stream",
    //          "xmpp_login",
    //          "ads_management",
    //          "create_event",
    //          "manage_friendlists",
    //          "manage_notifications",
    //          "offline_access",
    //          "publish_checkins",
            "publish_stream",
    //          "rsvp_event",
    //          "sms",
            //"publish_actions",

    //          "manage_pages"

          };

          fbLoginManager = new FBLoginManager(this,
            R.layout.activity_main, 
            FacebookTesting, 
            permissions);

          if(fbLoginManager.existsSavedFacebook()){
           fbLoginManager.loadFacebook();
          }
          else{
           fbLoginManager.login();
          }
         }





    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


     @Override
     protected void onActivityResult(int requestCode, int resultCode,    android.content.Intentdata){


         fbLoginManager.loginSuccess(data);
     }

     public void loginSuccess(Facebook facebook) {
    //  GraphApi graphApi = new GraphApi(facebook);
         new getDataBackgroundThread().execute(facebook);
    //    User user = new User();
    //
    //    try{
    //     user = graphApi.getMyAccountInfo();
    //
    //     //update your status if logged in
    //     graphApi.setStatus("Hello, world!");
    //    } catch(EasyFacebookError e){
    //     Log.d("TAG: ", e.toString());
    //    }

    //    fbLoginManager.displayToast("Hey, " + user.getFirst_name() + "! Login success!");
     }

    @Override
    public void logoutSuccess() {
        // TODO Auto-generated method stub

    }


    @Override
    public void loginFail() {
        // TODO Auto-generated method stub

    }



     class getDataBackgroundThread extends AsyncTask<Facebook, Void, String> {

            private Exception exception;


            protected String doInBackground(Facebook... urls) {
                try{
                     GraphApi graphApi = new GraphApi(urls[0]);

                      User user = new User();

                      try{
                    //   user = graphApi.getMyAccountInfo();

                       //update your status if logged in
                       //graphApi.setStatus("My android App "+"VivekAppTest");
                          graphApi.setStatus(et1+"VivekAppTest");
                      } catch(EasyFacebookError e){
                       Log.d("TAG: ", e.toString());
                      }
                return "posted";
                }
                catch (Exception e) {
                    // TODO: handle exception
                    return null;
                }


    }
            protected void onPostExecute(String ipr) {
                // TODO: check this.exception 
                // TODO: do something with the feed
     //
    //               Intent i=new Intent(getApplicationContext(),MainActivity.class);
    //               startActivity(i); 
    //               finish();
                Toast toast=Toast.makeText(getApplicationContext(),"Post Successful !", 1);
                toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL,0, 130);
                toast.show();

            }
        }



}

LOGCAT:

10-17 20:25:05.623: E/AndroidRuntime(401): FATAL EXCEPTION: main
10-17 20:25:05.623: E/AndroidRuntime(401): java.lang.IllegalStateException: Could not find a method (View) in the activity class com.example.facebooktesting.MainActivity for onClick handler on view class android.widget.Button with id 'button1'
10-17 20:25:05.623: E/AndroidRuntime(401):  at android.view.View$1.onClick(View.java:2059)
10-17 20:25:05.623: E/AndroidRuntime(401):  at android.view.View.performClick(View.java:2408)
10-17 20:25:05.623: E/AndroidRuntime(401):  at android.view.View$PerformClick.run(View.java:8816)
10-17 20:25:05.623: E/AndroidRuntime(401):  at android.os.Handler.handleCallback(Handler.java:587)
10-17 20:25:05.623: E/AndroidRuntime(401):  at android.os.Handler.dispatchMessage(Handler.java:92)
10-17 20:25:05.623: E/AndroidRuntime(401):  at android.os.Looper.loop(Looper.java:123)
10-17 20:25:05.623: E/AndroidRuntime(401):  at android.app.ActivityThread.main(ActivityThread.java:4627)
10-17 20:25:05.623: E/AndroidRuntime(401):  at java.lang.reflect.Method.invokeNative(Native Method)
10-17 20:25:05.623: E/AndroidRuntime(401):  at java.lang.reflect.Method.invoke(Method.java:521)
10-17 20:25:05.623: E/AndroidRuntime(401):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-17 20:25:05.623: E/AndroidRuntime(401):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-17 20:25:05.623: E/AndroidRuntime(401):  at dalvik.system.NativeStart.main(Native Method)
10-17 20:25:05.623: E/AndroidRuntime(401): Caused by: java.lang.NoSuchMethodException: 
10-17 20:25:05.623: E/AndroidRuntime(401):  at java.lang.ClassCache.findMethodByName(ClassCache.java:308)
10-17 20:25:05.623: E/AndroidRuntime(401):  at java.lang.Class.getMethod(Class.java:985)
10-17 20:25:05.623: E/AndroidRuntime(401):  at android.view.View$1.onClick(View.java:2052)
10-17 20:25:05.623: E/AndroidRuntime(401):  ... 11 more
10-17 20:25:10.590: I/Process(401): Sending signal. PID: 401 SIG: 9

1 个答案:

答案 0 :(得分:0)

在日志中:

  

IllegalStateException:无法在活动中找到方法(View)   类

表示您忘记在MainActivity类中定义已添加为button1布局中activity_main.xml作为android:onClick的回调的方法。像在MainActivity中一样添加它:

public void button1_Click(View view) {
    // TODO Auto-generated method stub
    // on button1 click
}