Session.StatusCallback не можа быць дазволены да тыпу - Facebook API

Я пайшоў за падручнік аўтэнтыфікацыі Увайсці на Facebook і скапіяваў наступны код у мой АНДРОІД прыкладання

private Session.StatusCallback callback = 
    new Session.StatusCallback()
{
    @Override
    public void call(Session session, 
            SessionState state, Exception exception) {
        onSessionStateChange(session, state, exception);
    }
};

Тым не менш, гэта дае мне наступныя памылкі:

Session.StatusCallback cannot be resolved to a type

Што прыводзіць да наступных памылак:

callback cannot be resolved to a variable

Там таксама іншыя месцы, дзе вырабляюцца Facebook выклікі API, якія даюць мне памылкі, але гэта не ва ўсіх API выклікаў Facebook. Яшчэ адно месца, я атрымліваю паведамленне пра памылку выглядае наступным чынам:

Request request = Request.newMeRequest(session, 
                    new Request.GraphUserCallback() {
                @Override
                public void onCompleted(GraphUser user, Response response) {
                   //If the response is successful
                    if (session == Session.getActiveSession()) {
                        if (user != null) {
                           //Set the id for the ProfilePictureView
                           //view that in turn displays the profile picture.
                            Log.d("MainActivity", "onComplete() User logged in");
                            parent.owner = MainKickback.userConnection.add(new User(user.getId()));

                            EventFragment e = (EventFragment) fragments[UPCOMING_EVENTS];
                            e.populateEvents();
                        }
                    }
                    if (response.getError() != null) {
                       //Handle errors, will do so later.
                    }
                }
            });
            request.executeAsync();

дзе ён не прызнае Request.GraphUserCallback, а затым executeAsync (). Я атрымліваю наступныя памылкі:

Request.GraphUserCallback cannot be resolved to a type
The method executeAsync() is undefined for the type DownloadManager.Request

Хто-небудзь ёсць якія-небудзь рэкамендацыі адносна таго, як гэта выправіць?

Дзякуй за вашу дапамогу загадзя !!

4

7 адказы

У мяне была такая ж праблема, як ваш першы, і я вырашыў яе выдаленнем

import android.service.textservice.SpellCheckerService.Session;

і даданне

import com.facebook.Session;
17
дададзена
Вы выратавальнік жыцця !! Чаму вы думаеце, што SpellCheckerService.Session ствараў праблемы, таму што я сапраўды такі ж пытанне, і ён атрымаў вырашыць, прыбраўшы заяву!
дададзена аўтар Darth Coder, крыніца

У мяне была аналагічная праблема, і праблема была ў тым, што я меў гэтыя два імпарту ў файле

import android.app.DownloadManager.Request;
import android.service.textservice.SpellCheckerService.Session;

І той запыт і сесія модулі пераазначэння

com.facebook.Session
com.facebook.Request

Я на самой справе проста выдаліў два АНДРОІД імпарту і ўсё працавала добра. Яны, падобна, не будзе выкарыстоўвацца, але зацьменне дадалі іх у нейкай дзіўнай прычыне.

Мяркуючы па вашай прадукцыі

The method executeAsync() is undefined for the type DownloadManager.Request

Я б сказаў, што гэта гучыць, як у вас ёсць той жа імпарт адбываецца дзесьці, і яны перакрываючы імпарт facebook.

3
дададзена

Атрымаў гэтае пытанне, маючы абодва запыт і сеанс класаў з рамак Volley ўжо імпартаваных. Паспрабуйце выкарыстоўваць клас з імем пакета для сесіі і запыту, ён працаваў на мяне. Ніжэй гэта код.

private com.facebook.Session.StatusCallback callback = 
    new com.facebook.Session.StatusCallback()
{
    @Override
    public void call(com.facebook.Session session, 
            SessionState state, Exception exception) {
        onSessionStateChange(session, state, exception);
    }
};
2
дададзена

Для вашай першай праблемы, якія імпартуюць вы карыстаецеся? Я выкарыстоўваю гэта для зваротнага званка:

import com.facebook.Session.StatusCallback;

Які Facebook SDK вы карыстаецеся? Найноўшы адзін? Я выкарыстоўваю апошняе SDK 4.01 Бутин Гэты SDK не падтрымлівае гэтую Pakage

1
дададзена
Хммм дурны пытанне, але, ці ведаеце вы імпартавалі facebook SDK як андроіда праекта і ўключаў, што ў вашым buildpath вашага праекта ў якасці праекта бібліятэкі?
дададзена аўтар Luser_k, крыніца
Я выкарыстоўваю імпартную com.facebook.SessionState; і імпартаваць што-небудзь яшчэ дае мне канфлікт. І я выкарыстоўваю Facebook SDK 3.0.1 я думаю
дададзена аўтар Rucha Heda, крыніца
Так, я зрабіў. Увесь гэты праект працаваў раней, то я абнавіў свой GIT рэпазітар і ўсё зламаў і цяпер я спрабую выправіць гэта зноў. Іншыя званкі на Facebook API ня кідалі памылкі. Але менавіта гэтыя з іх, і я не ведаю, чаму.
дададзена аўтар Rucha Heda, крыніца

Проста выдаліце ​​FB SDK і паўторна загрузіць яго. Ваш SDK, верагодна, пашкоджаны іншымі, якія падштурхнулі да гнюса.

1
дададзена
Я зрабіў гэта, і памылкі не знікаюць.
дададзена аўтар Rucha Heda, крыніца

I had a message: "Cannot resolve symbol Session". So, the problem was in non-plugged library "facebook". I resolved it so. 1. Open Project Structure (File > Project Structure). 2. Select Modules on the left pane. 3. Choose your project name. 4. Click Dependencies tab. 5. Click on the plus sign in the bottom. Select "Module dependency" and click "facebook". 6. Press OK, then OK.

0
дададзена
package com.vishal.example;

import com.facebook.Response;
import com.facebook.UiLifecycleHelper;
import com.facebook.Response;
import com.facebook.UiLifecycleHelper;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.model.GraphUser;
import com.facebook.Request;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity 
{
    private UiLifecycleHelper uiHelper;
    private View otherView;
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       //Set View that should be visible after log-in invisible initially
        otherView = (View) findViewById(R.id.other_views);
        otherView.setVisibility(View.GONE);
       //To maintain FB Login session
        uiHelper = new UiLifecycleHelper(this, callback);
        uiHelper.onCreate(savedInstanceState);
   }

  //Called when session changes
   private Session.StatusCallback callback = new Session.StatusCallback()
   {
       @Override
       public void call(Session session, SessionState state, Exception exception) 
       {
           onSessionStateChange(session, state, exception);
       }
   };

  //When session is changed, this method is called from callback method
    private void onSessionStateChange(Session session, SessionState state, Exception exception)
    {
         final TextView name = (TextView) findViewById(R.id.name);
         final TextView gender = (TextView) findViewById(R.id.gender);
         final TextView location = (TextView) findViewById(R.id.location);
        //When Session is successfully opened (User logged-in)
         if (state.isOpened())
         {
             Log.i(TAG, "Logged in...");
            //make request to the /me API to get Graph user
             Request.newMeRequest(session, new Request.GraphUserCallback() 
             {
                //callback after Graph API response with user
                 @Override
                 public void onCompleted(GraphUser user, Response response)
                 {
                     if (user != null)
                     {
                        //Set view visibility to true
                        otherView.setVisibility(View.VISIBLE);
                       //Set User name 
                        name.setText("Hello " + user.getName());
                       //Set Gender
                        gender.setText("Your Gender: " + user.getProperty("gender").toString());
                        location.setText("Your Current Location: " + user.getLocation().getProperty("name").toString());
                     }
                }
            }).executeAsync();
         }
         else if(state.isClosed())
         {
             Log.i(TAG, "Logged out...");
             otherView.setVisibility(View.GONE);
         }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        uiHelper.onActivityResult(requestCode, resultCode, data);
        Log.i(TAG, "OnActivityResult...");
    }

    @Override
    public void onResume()
    {
        super.onResume();
        uiHelper.onResume();
    }

    @Override
    public void onPause()
    {
        super.onPause();
        uiHelper.onPause();
    }

    @Override
    public void onDestroy()
    {
        super.onDestroy();
        uiHelper.onDestroy();
    }

    @Override
    public void onSaveInstanceState(Bundle outState)
    {
        super.onSaveInstanceState(outState);
        uiHelper.onSaveInstanceState(outState);
    }
}

Reference link for facebook sdk where You can download and use it. its work for me http://www.filedropper.com/facebooksdk

0
дададзена