[英]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.