2014-01-13 50 views
11

我想創建一個使用Facebook SDK的新Android應用程序,我使用的是最新版本的所有內容,所以我使用的是Android Studio 0.4.0 Gradle編譯系統和從Facebook下載的最新SDK版本。在Android Studio中使用Facebook SDK 0.4.2

我試圖按照Facebook的開發者頁面的指示: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android-using-android-studio/3.0/ 沒有運氣,因爲指令是不是一個基於Android的搖籃工作室。

我也試圖跟着斯科特·巴塔在using facebook sdk in android studio指示,但沒有運氣,步驟7時「同步工程與搖籃文件」不工作,我得到這個錯誤:

無法刷新Gradle項目。您正在使用舊的,不受支持的Gradle版本。請使用版本1.9或更高版本。請點支持的搖籃版本在項目的搖籃設置,或在項目的搖籃包裝(如適用)。

我試圖修改的build.gradle文件,並從改變類路徑線:

classpath 'com.android.tools.build:gradle:0.6.+' 

到:

classpath 'com.android.tools.build:gradle:0.7.+' 

,改變它的compileSdkVersion,buildToolsVersion,和的minSdkVersion到targetSdkVersion我在我的項目的值,但不工作。

任何人都可以幫助我嗎?謝謝!

編輯:我今天已更新到Android 0.4.2,但沒有與新版本的運氣。

我gradle-wrapper.properties文件使用搖籃1.9:

#Wed Apr 10 15:27:10 PDT 2013 
distributionBase=GRADLE_USER_HOME 
distributionPath=wrapper/dists 
zipStoreBase=GRADLE_USER_HOME 
zipStorePath=wrapper/dists 
distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip 

這是我用來編譯Facebook的庫的build.gradle文件:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.7.+' 
    } 
} 

apply plugin: 'android-library' 

dependencies { 
    compile 'com.android.support:support-v4:+' 
} 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 19 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
     } 
    } 
} 

這是完整的build.gradle我用於我的應用程序:

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 19 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:+' 
    compile project(':libraries:facebook') 
} 

現在,當我點擊同步項目與搖籃文件,我得到以下錯誤:

Gradle 'Testing' project refresh failed: 
Project with path ':libraries:facebook' could not be found in project ':app'. 

我試圖用改變路徑:「圖書館:臉譜」,「應用程序:庫:臉譜」,「:應用程序:庫:臉譜」 ......但我總是有同樣的錯誤。

與Solution編輯:

有了Android 0.4.2和Facebook的SDK的最新版本是很容易的,Facebook的SDK中包含的build.gradle文件這樣的作品,僅僅只請按照下列步驟操作:

  • 創建一個名爲「庫」文件夾(重要的是,不要用其他的名字!如果你用「LIB」可能無法正常工作),在項目的頂部重要的,不要」 t在子文件夾中創建!!!)。

  • 將下載的SDK中的facebook文件夾複製到您剛剛創建的libs文件夾中。

  • 包含這一行你settings.gradle的頂部:

    包括':庫:Facebook的

  • 包含這一行你的build.gradle文件的底部,依賴組:

    編制項目(':庫:Facebook的)

只需點擊 「同步工程與搖籃文件」,重建項目和它應該工作!

編輯ANDROID STUDIO> 0.5.2:

那麼,在Android Studio版本0.5.2,創建一個新的項目時,在你的項目中創造了一個「庫」文件夾,所以我認爲這是一個更好的辦法是使用該文件夾,所以這些步驟如下:

  • 複製從下載SDK到libs文件夾的Facebook的文件夾:爲yourprojectname /爲yourprojectname /庫

  • 包括這條線在頂部你的settings.gradle:

    包括':庫:Facebook的

  • 包含這一行你的build.gradle文件的底部,依賴組:

    編譯項目(「:爲yourprojectname:庫:Facebook的)

只需點擊「同步項目與Gradle文件」,重建項目,它應該工作!

回答

7

要添加到對方的回答,行 include ':libraries:facebook'添加到您的settings.gradle,你會得到一個新的錯誤

Gradle 'Android' project refresh failed: Configuration with name 'default' not found. 

但嘿,這就是我們所說的進步。

EDI:

好吧,現在正在工作,這正是我所做的。 - 我從一開始就把FB SDK放在了錯誤的路徑上,我創建了一個與我的應用程序相同級別的庫文件夾,你不應該這樣做,它不會起作用。 - 由於Android 0.4工作室+的文件夾名稱應該是庫和庫不

創建一個文件夾在你的項目的根目錄(相同的地方,你找到settings.gradle)

複製在庫從Facebook的SDK的Facebook文件夾

在你settings.gradle添加include ':libs:Facebook'之前,包括你的主應用程序

在你的build.gr你的主要應用程序的adle在你的依賴加入這一行

compile project(':libs:facebook') 

確保支持Android V4也是您的一個依賴項,即:

compile 'com.android.support:support-v4:18.0.0' 

而且,這裏是我的Facebook庫的的build.gradle

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.7.1' 
    } 
} 

apply plugin: 'android-library' 

dependencies { 
    compile 'com.android.support:support-v4:+' 
} 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.0" 

    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 19 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
     } 
    } 
} 

現在的gradle同步,一切都應該工作正常,我在Android 0.4.2工作室實+ SDK 3.6.0

+0

太棒了,我做到了! –

+0

有一個錯字:'include':libs:Facebook''應該是'include':libs:facebook''。所以不會讓我編輯它,因爲那只是一個字符。 –

+0

它可能包括Facebook SDK作爲Gradle依賴項,請檢查此答案:http://stackoverflow.com/a/23746667/1891118 –

1

使用Gradle插件的v0.7。+,就像你已經做的那樣,並且你想確保你使用的是Gradle的v1.9(不是1.10,這是不兼容的)。如果您的項目使用Gradle包裝器(這是我推薦的),那麼您可以檢查gradle/wrapper/gradle-wrapper.properties文件中嵌入distributionUrl參數的Gradle版本。

如果您升級到Android Studio 0.4.2,它應該在打開項目時檢查版本,並告訴您如何糾正存在的問題。

編輯

要與

Build script error, unsupported Gradle DSL method found: 'include()'! 

您需要更正你的依賴解決您的問題。要包含其他模塊的依賴,使用此:

compile project(':libraries:facebook') 

如果你去通過項目結構對話框,而不是通過手工編輯的build.gradle文件,它可以做正確的你(雖然它贏得不修復使用include的錯誤陳述)。

+0

首先,非常感謝您的幫助。 這是我gradle-wrapper.properties文件: distributionBase = GRADLE_USER_HOME distributionPath =包裝/ dists中 zipStoreBase = GRADLE_USER_HOME zipStorePath =包裝/ dists中 distributionUrl = HTTP \://services.gradle.org/distributions/gradle -1.9-all.zip 似乎我正在使用Gradle 1.9。 而在的build.gradle,我使用的是0.7 +: buildscript { 庫{ mavenCentral() } 依賴{ 類路徑 'com.android.tools.build:gradle:0.7.+' } } } 而且我有同樣的錯誤:( –

+0

請更新您的問題並在您的構建文件中添加詳細信息,因爲所有格式都丟失太難以閱讀評論 –

+0

非常感謝Scott, –

相關問題