簡體   English   中英

為什么Facebook SDK無法導入我的Android項目?

[英]Why is the Facebook SDK failing to import for my Android Project?

我按照指南在我的Android項目中添加了Facebook登錄按鈕,而且Android Studio似乎無法識別Facebook方法。 例如,對於我在MainActivity.java文件中擁有的任何Facebook方法,都會收到警告消息“無法解析符號'TextView'”,並且我為MainActivity.java收到的所有Gradle構建錯誤似乎都來了無法導入Facebook SDK。 我真的看不到我做錯了什么。 參見下面的代碼。

MainActivity.java文件,其中使用來自Facebook SDK導入的方法:

package com.checkit.ben.checkit;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {

    private TextView info;
    private LoginButton loginbutton;
    private CallbackManager callbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        com.facebook.FacebookSdk.sdkInitialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        callbackManager = CallbackManager.Factory.create();
        info = (TextView)findViewById(R.id.info);
        loginButton = (LoginButton)findViewById(R.id.login_button);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

        @Override
        public void onSuccess(LoginResult loginResult) {

            info.setText(
                    "User ID: "
                            + loginResult.getAccessToken().getUserId()
                            + "\n" +
                            "Auth Token: "
                            + loginResult.getAccessToken().getToken()
            );

        }

        @Override
        public void onCancel()

        {
            info.setText("Login attempt canceled.");
        }

        @Override
        public void onError(FacebookException e)

        {
            info.setText("Login attempt failed.");
        }
    }
}

應用程序級別的build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.checkit.ben.checkit"
        minSdkVersion 9
        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.3.0';
}

嘗試構建項目時,Gradle控制台錯誤日志:

Executing tasks: [clean, :app:compileDebugSources, :app:compileDebugAndroidTestSources]

Configuration on demand is an incubating feature.
:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72211Library
:app:prepareComAndroidSupportSupportV42211Library
:app:prepareComFacebookAndroidFacebookAndroidSdk430Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
:app:processDebugManifest
:app:processDebugResources
:app:generateDebugSources
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJava
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: <identifier> expected
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: <identifier> expected
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                                ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: illegal start of type
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                                  ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: ')' expected
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                                     ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: ';' expected
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                                                      ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: <identifier> expected
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                                                                  ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: illegal start of type
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                                                                   ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: <identifier> expected
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                                                                    ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:50: error: ';' expected
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                                                                                     ^
/Users/ben/AndroidStudioProjects/CheckIt/app/src/main/java/com/checkit/ben/checkit/MainActivity.java:79: error: class, interface, or enum expected
}
^
10 errors

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

謝謝您的幫助。

發生錯誤的行(第50行)不在方法內,這是無效的。 您可能應該將用於注冊登錄按鈕的回調的所有代碼都放在onCreate方法中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM