无法导入';facebook';sdk 4.9.0作为android studio 1.2中的模块

无法导入';facebook';sdk 4.9.0作为android studio 1.2中的模块,android,facebook-sdk-4.x,android-studio-import,Android,Facebook Sdk 4.x,Android Studio Import,我得到“指定gradle或android eclipse项目的位置”。我遵循以下步骤: 1) 在app->build.gradle中添加了mavenCentral和依赖项 apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.example.

我得到“指定gradle或android eclipse项目的位置”。我遵循以下步骤:

1) 在app->build.gradle中添加了mavenCentral和依赖项

 apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.example.akshitag.cooltrends"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    mavenCentral()
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.facebook.android:facebook-android-sdk:4.+'
}
2) 建立一个成功的项目

3) 下载并解压缩facebook sdk。使用文件->新建下的导入模块并选择facebook文件夹。在unzipeed older中,我有:\facebook-android-sdk-4.9.0\facebook-android-sdk-4.9.0。它包含AudienceNet和facebook文件夹。在facebook文件夹中,我有以下文件:sample、facebook-android-sdk-4.9.0.aar、license.txt和notice.txt

另外,这就是我的项目结构


有人能带我到这里吗

您已经在gradle中编译了sdk,那么为什么要使用不同的方法再次添加它?您的项目已经完成,不需要将其作为单独的模块添加

您不需要在android studio中导入facebook SDK文件,只需转到您的应用程序模块gradle:build.gradle并粘贴即可

 repositories {

    mavenCentral()
}
dependencies {
    compile 'com.android.support:support-v4:21.0.3'
    compile 'com.facebook.android:facebook-android-sdk:4.8.0'
}
.别忘了同步 . 此时min sdk版本必须为15 然后转到创建应用程序id并将其粘贴到values>>trings.xml中。也不要忘记创建应用程序密钥哈希

在项目中创建以下文件:MyApplication.java

粘贴这些代码:

public class MyApplication extends Application {
    // Updated your class body:
   @Override
    public void onCreate() {
    super.onCreate();
    // Initialize the SDK before executing any other operations,
    FacebookSdk.sdkInitialize(getApplicationContext());
    AppEventsLogger.activateApp(this);
}
}

让你的家人像这样做:

      public class SigninFragment extends Fragment {

    CallbackManager callbackManager;
    private LoginButton loginButton;



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        // Other app specific specialization
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(getActivity());
        callbackManager = CallbackManager.Factory.create();
        // Initialize the SDK before executing any other operations,
        View rootView = inflater.inflate(R.layout.signin_fragment, container, false);




        loginButton = (LoginButton)rootView.findViewById(R.id.login_button);
        loginButton.setReadPermissions("email");
        // If using in a fragment
        loginButton.setFragment(this);




        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Toast.makeText(getApplicationContext(), "Login attempt succes.",Toast.LENGTH_LONG).show();

            }

            @Override
            public void onCancel() {
              Toast.makeText(getApplicationContext(), "Login attempt cancelled.",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onError(FacebookException e) {
                Toast.makeText(getApplicationContext(), "Login attempt failed.",Toast.LENGTH_LONG).show();
            }
        });



        return rootView;
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
    <string name="facebook_app_id">here there is id number you get from facebook developpers</string>
    <string name="fb_login_protocol_scheme">fbAPP_ID</string>
  <com.facebook.login.widget.LoginButton
    android:id="@+id/login_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="71dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />
公共类SigninFragment扩展片段{
CallbackManager CallbackManager;
私人登录按钮登录按钮;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//其他特定于应用程序的专门化
sdkinInitialize(getApplicationContext());
activateApp(getActivity());
callbackManager=callbackManager.Factory.create();
//在执行任何其他操作之前初始化SDK,
视图根视图=充气机。充气(R.layout.signin_碎片,容器,假);
loginButton=(loginButton)rootView.findviewbyd(R.id.login_按钮);
loginButton.setReadPermissions(“电子邮件”);
//如果在片段中使用
setFragment(this);
registerCallback(callbackManager,newfacebookcallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
Toast.makeText(getApplicationContext(),“登录尝试成功”,Toast.LENGTH\u LONG.show();
}
@凌驾
公开作废{
Toast.makeText(getApplicationContext(),“登录尝试已取消”,Toast.LENGTH_LONG.show();
}
@凌驾
公共无效onError(FaceBook例外e){
Toast.makeText(getApplicationContext(),“登录尝试失败”,Toast.LENGTH_LONG.show();
}
});
返回rootView;
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}
您的android清单必须是什么样子:

  //facebook
    <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:label="@string/app_name"
        android:exported="true"
        >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>
    <meta-data android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id"/>



    //end facebook
//facebook
//结束facebook
必须在strings.xml中找到的内容:

      public class SigninFragment extends Fragment {

    CallbackManager callbackManager;
    private LoginButton loginButton;



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        // Other app specific specialization
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(getActivity());
        callbackManager = CallbackManager.Factory.create();
        // Initialize the SDK before executing any other operations,
        View rootView = inflater.inflate(R.layout.signin_fragment, container, false);




        loginButton = (LoginButton)rootView.findViewById(R.id.login_button);
        loginButton.setReadPermissions("email");
        // If using in a fragment
        loginButton.setFragment(this);




        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Toast.makeText(getApplicationContext(), "Login attempt succes.",Toast.LENGTH_LONG).show();

            }

            @Override
            public void onCancel() {
              Toast.makeText(getApplicationContext(), "Login attempt cancelled.",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onError(FacebookException e) {
                Toast.makeText(getApplicationContext(), "Login attempt failed.",Toast.LENGTH_LONG).show();
            }
        });



        return rootView;
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
    <string name="facebook_app_id">here there is id number you get from facebook developpers</string>
    <string name="fb_login_protocol_scheme">fbAPP_ID</string>
  <com.facebook.login.widget.LoginButton
    android:id="@+id/login_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="71dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />
这是您从facebook开发者那里获得的id号
fbAPP_ID
I您的signinFragment.xml添加facebook按钮如下:

      public class SigninFragment extends Fragment {

    CallbackManager callbackManager;
    private LoginButton loginButton;



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        // Other app specific specialization
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(getActivity());
        callbackManager = CallbackManager.Factory.create();
        // Initialize the SDK before executing any other operations,
        View rootView = inflater.inflate(R.layout.signin_fragment, container, false);




        loginButton = (LoginButton)rootView.findViewById(R.id.login_button);
        loginButton.setReadPermissions("email");
        // If using in a fragment
        loginButton.setFragment(this);




        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Toast.makeText(getApplicationContext(), "Login attempt succes.",Toast.LENGTH_LONG).show();

            }

            @Override
            public void onCancel() {
              Toast.makeText(getApplicationContext(), "Login attempt cancelled.",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onError(FacebookException e) {
                Toast.makeText(getApplicationContext(), "Login attempt failed.",Toast.LENGTH_LONG).show();
            }
        });



        return rootView;
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
    <string name="facebook_app_id">here there is id number you get from facebook developpers</string>
    <string name="fb_login_protocol_scheme">fbAPP_ID</string>
  <com.facebook.login.widget.LoginButton
    android:id="@+id/login_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="71dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />


检查此项目中包含的4.6对fb的依赖关系。@RobertRowntree感谢您的回复。我添加了这一个compile'com.parse:parsefacebookutils-v4-android:1.10。3@aar我仍然无法导入模块。这似乎是parseUI的库。是的,我正要回答相同的问题,但谢谢@Zeus25。