2013-11-21 7 views
0

У меня проблемы с моим Android-проектом. Я пытаюсь связать свое приложение с входом в facebook, но это дает мне ошибку: java.Lang.NullPointerException: Argument 'applicationId' cannot be null.Android-логин с facebook AppID

Кажется, что проблема заключается в манифесте. Тем не менее, мой манифест хорошо написан, я верю.

Я все еще узнаю о внедрении facebook с Android, поэтому мне хотелось бы помочь на этом этапе.

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

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

    <application 
     android:allowBackup="true" 
     android:label="Myapp" 
     android:icon="@drawable/ic_launcher" 
     android:theme="@android:style/Theme.NoTitleBar" > 

     <activity 
      android:name="myapp.screen.interfaces.Splash" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name="myapp.screen.interfaces.Login" > 
      <intent-filter> 
       <action android:name="android.intent.action.LOGIN" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name="myapp.screen.interfaces.Home" > 
      <intent-filter> 
       <action android:name="android.intent.action.HOME" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

     <meta-data android:name="com.facebook.LoginActivity" android:value="@string/app_id"/> 
    </application> 
</manifest> 

И это мой Java код:

public class Login extends Activity { 

    EditText mailIn; 
    Button btSubmit; 

    @Override 
    protected void onCreate(Bundle tokenArg) { 
     super.onCreate(tokenArg); 
     setContentView(R.layout.login); 

     mailIn = (EditText)findViewById(R.id.usermail); 
     btSubmit = (Button)findViewById(R.id.submit); 

     btSubmit.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View thisView) { 
       new LoginProc().execute(); 
      } 
     }); 
    } 

    public class LoginProc extends AsyncTask<String, Void, ArrayList<String>> { 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      Session.openActiveSession(Login.this, true, null); 
      } 

     @Override 
     protected ArrayList<String> doInBackground(String... params) { 
      ArrayList<String> userValues = new ArrayList<String>(); 

      /* Get inputed email from the EditText field on the screen */ 
      userValues.add(((EditText)findViewById(R.id.usermail)).getText().toString()); 

      String response = new Database().login(userValues); 

      if(response.toLowerCase().contains("null")) 
       cancel(true); 

      return (new Database().getProfile(response)); 
     } 

     @Override 
     protected void onPostExecute(ArrayList<String> result) { 
      super.onPostExecute(result); 

      Intent toHome = new Intent(Login.this, Home.class); 
      toHome.putExtra("username", result.get(1)); 
      startActivity(toHome); 
     } 

     @Override 
     protected void onCancelled() { 
      super.onCancelled(); 
      Toast.makeText(getApplicationContext(), "Not registered", Toast.LENGTH_SHORT).show(); 
     } 
    } 

Что происходит? Большое спасибо

ответ

0

У вас есть:

<meta-data android:name="com.facebook.LoginActivity" android:value="@string/app_id"/> 

Но это должно быть:

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/> 

Кроме того, убедитесь, что вы на самом деле есть свой реальный APP_ID в вашем strings.xml

<resources> 
    <string name="app_id">1234567890</string> 
    ... 
</resources> 
Смежные вопросы