2013-07-19 4 views
0

방금 ​​facebook sdk에 대한 모든 것을 사용하는 방법을 배웠고 코드에 넣었습니다.하지만 에뮬레이터에서 앱을 실행하면 앱이 시작되고 로그인 한 다음 시작합니다. 주요 활동,이 시점에서 모두 괜찮아요,하지만 두 번째 활동을 시작하면 앱이 웬일인지 충돌합니다. 당신이 나를 도울 수 있기를 바랍니다.java.lang.NullPointerException 안드로이드 에뮬레이터

MainAcivity :

package whao.whaoapps.kisscounter; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.widget.TextView; 

import com.facebook.*; 
import com.facebook.model.*; 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    Session.openActiveSession(this, true, new Session.StatusCallback(){ 

     public void call(Session session, SessionState state, Exception exception){ 
      if (session.isOpened()){ 

       Request.executeMeRequestAsync(session, new Request.GraphUserCallback(){ 

        public void onCompleted(GraphUser user, Response response){ 
         if (user!=null){ 
          TextView welcome= (TextView)findViewById(R.id.welcome); 
          welcome.setText("Hello " + user.getName() + "!"); 
         } 
        } 
       }); 
     } 
     } 
    }); 
} 

public void contar(View view) { 
    Intent i = new Intent(this, Contar.class); 
    startActivity(i); 

} 

public void creditos(View view) { 
    Intent i = new Intent(this, Creditos.class); 
    startActivity(i); 

} 


public void onActivityResult(int requestCode, int resultCode, Intent data){ 
    super.onActivityResult(requestCode, resultCode, data); 
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 

} 

} 

로그 캣 오류 :

07-19 05:57:06.251: E/AndroidRuntime(790): FATAL EXCEPTION: main 
07-19 05:57:06.251: E/AndroidRuntime(790): java.lang.NullPointerException 
07-19 05:57:06.251: E/AndroidRuntime(790): at whao.whaoapps.kisscounter.MainActivity$1$1.onCompleted(MainActivity.java:31) 
07-19 05:57:06.251: E/AndroidRuntime(790): at com.facebook.Request$1.onCompleted(Request.java:264) 
07-19 05:57:06.251: E/AndroidRuntime(790): at com.facebook.Request$4.run(Request.java:1240) 
07-19 05:57:06.251: E/AndroidRuntime(790): at android.os.Handler.handleCallback(Handler.java:725) 
07-19 05:57:06.251: E/AndroidRuntime(790): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-19 05:57:06.251: E/AndroidRuntime(790): at android.os.Looper.loop(Looper.java:137) 
07-19 05:57:06.251: E/AndroidRuntime(790): at android.app.ActivityThread.main(ActivityThread.java:5039) 
07-19 05:57:06.251: E/AndroidRuntime(790): at java.lang.reflect.Method.invokeNative(Native Method) 
07-19 05:57:06.251: E/AndroidRuntime(790): at java.lang.reflect.Method.invoke(Method.java:511) 
07-19 05:57:06.251: E/AndroidRuntime(790): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
07-19 05:57:06.251: E/AndroidRuntime(790): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
07-19 05:57:06.251: E/AndroidRuntime(790): at dalvik.system.NativeStart.main(Native Method) 

안드로이드 매니페스트 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="whao.whaoapps.kisscounter" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 
<uses-permission android:name="android.permission.INTERNET"/> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="whao.whaoapps.kisscounter.MainActivity" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="Contar" 
      android:screenOrientation="portrait" 
      android:theme="@android:style/Theme.NoTitleBar"></activity> 

    <activity android:name="Creditos" 
      android:screenOrientation="portrait" 
      android:theme="@android:style/Theme.NoTitleBar"></activity> 
    <activity android:name="Resultado" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme.Black.NoTitleBar"></activity> 
    <meta-data android:value="@string/app_id" android:name="com.facebook.sdk.ApplicationId"/> 
    <activity android:name="com.facebook.LoginActivity"></activity> 
</application> 

</manifest> 
+0

textview welcome 또는 GraphUser user가 null입니다. 디버그 및 체크 –

+0

그냥 생각 : 귀하의 TextView에 (레이아웃.xml에서) ID가 설정되지 않았을 가능성이 있습니까? –

답변

0

귀하의 TextView welcome 대부분 null입니다. 나는 당신이 2 가지를해야한다고 생각한다. (두 번째 것은 단지 제안 일 뿐이다.) onCompleted 대신에 TextView welcome의 참조를 onCreate 자체에 넣는다. 2. TextView의 텍스트를 업데이트하는 동안 UIThread에서 더 잘 수행하십시오 (runOnUiThread)

+0

나는 안드로이드 개발 롤 초급, 당신이 onCreate에 오신 것을 환영 TextView에 대한 참조를 얻으려면 더 especific 수 있습니까? @Rajeev – Whady

+0

'activity_main' 레이아웃에'id'가'welcome' 인'TextView'가 있다고 가정합니다. 그렇다면'onCreate'에서'final TextView welcome = (TextView) findViewById (R.id.welcome);'그리고'onCompleted'에서 단순히 필요한 텍스트를 설정하십시오. – Rajeev

+0

고마워요! :) @Rajeev – Whady

관련 문제