2011-07-11 22 views
1

だから私はthis tutorialに従って、私のアプリで既に構築したアンドロイドのfacebook sdkをセットアップしました。私は今チュートリアルが構築するために言うすべてのファイルを持っており、すべてがエラーを表示しません。今私は、ユーザーがアプリのボタンを押すとFacebookのサインオンページに移動するようにアプリを設定できるようにしたい。私はこのコードを使ってみましたが、それは動作しません、アプリケーションがクラッシュし、私はlogcatでこれらのエラーを取得します。Android Facebook SDKサインオンの問題

誰でも私にこれを働かせることはできますか?

ImageButton facebook= (ImageButton) findViewById(R.id.facebook); 
     facebook.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent = new Intent(view.getContext(), FBConnectionActivity.class); 
       startActivityForResult(myIntent, 0); 

      } 
      }); 

そして、これらは私を与えるlogcatエラーです:

07-10 22:10:57.510: ERROR/AndroidRuntime(819): FATAL EXCEPTION: main 
07-10 22:10:57.510: ERROR/AndroidRuntime(819): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.outfit.first/com.outfit.first.FBConnectionActivity}: java.lang.InstantiationException: com.outfit.first.FBConnectionActivity 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1680) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.app.ActivityThread.access$1500(ActivityThread.java:123) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.os.Looper.loop(Looper.java:123) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.app.ActivityThread.main(ActivityThread.java:3839) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at java.lang.reflect.Method.invoke(Method.java:507) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at dalvik.system.NativeStart.main(Native Method) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819): Caused by: java.lang.InstantiationException: com.outfit.first.FBConnectionActivity 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at java.lang.Class.newInstanceImpl(Native Method) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at java.lang.Class.newInstance(Class.java:1409) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
07-10 22:10:57.510: ERROR/AndroidRuntime(819):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1672) 

答えて

2

いけない代わりに、あなたがそれらを拡張FBConnectionActivity などにログインしたいacivityで、FBConnectionActivityを使用して活動をしようとすると起動します。

public class myActivity extends FBconnectionActivity{....... 

myActivity内のonClickListener(またはあなたが呼び出したもの)で、setConnection()メソッドとgetID()メソッドを呼び出すだけで、 Facebookにログインするようにユーザーに促します。

public void getID() { 
    if (isSession()) { 
     Log.d(TAG, "sessionValid"); 
     mAsyncRunner.request("me", new IDRequestListener()); 
    } else { 
     // no logged in, so relogin 
     Log.d(TAG, "sessionNOTValid, relogin"); 
     mFacebook.authorize(this, PERMS, new LoginDialogListener()); 
    } 
} 
+0

を私がいることを使用:例:これは、それはチュートリアルでは、あなただけのあなたにFBConnectionActivityクラスを以下を追加できることのTextViewとプログレスバーなしのgetId()メソッドを使用したこと

ImageButton facebook= (ImageButton) findViewById(R.id.facebook); facebook.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { setConnection(); getID(); } }); 

注意私はユーザー情報を入力した後、アプリケーションがクラッシュし、logcatはこのような何かを言う以外は素晴らしい作品です。私は私の主なXML上でアプリケーションを再フォーカスする必要があると思うが、私は問題がさらにあると思う。 '07-12 16:27:22.214:WARN/InputManagerService(148):ウィンドウは既にフォーカスされており、フォーカスゲインは無視されています。[email protected] 07-12 16:27:22.254 :WARN/ViewServer(148):接続エラー: 07-12 16:27:22.254:WARN/ViewServer(148):java.net.SocketException:壊れたパイプ ' – Peter

+0

Hmm strange!あなたはログイン後何か他のことをしようとしていますか?オンクリックリスナーの前に&setConnection()メソッドを移動することができますが、違いはありません。もう一方の端がすでにそれを閉じているときに接続に書き込むことで、あなたの取得がエラーになる – Kenny

+0

私は今それを試してみるでしょう。私のコードは長すぎて、質問で再投稿することができませんでしたので、ここではすべてのコードを使って新しい質問を投稿しました。http://stackoverflow.com/questions/6671122/facebook-android-sdk-nullpointerexception多分その情報のいくつかが役立つだろう。 – Peter

関連する問題