Jos*_*ita 11 facebook-android-sdk android-studio
我正在尝试创建一个使用Facebook SDK的新Android应用程序,我正在使用最新版本的所有东西,所以我使用Android Studio 0.4.0和新的Gradle编译系统以及从下载的SDK的最新版本Facebook的.
我试图按照Facebook开发者页面中的说明操作:https: //developers.facebook.com/docs/getting-started/facebook-sdk-for-android-using-android-studio/3.0/但 没有运气,因为说明不适用于基于Gradle的Android Studio.
我也尝试按照Scott Barta在android工作室中使用facebook sdk的说明但没有运气,当"与Gradle文件同步项目"不起作用的第7步时,我收到此错误:
无法刷新Gradle项目.您正在使用旧的,不受支持的Gradle版本.请使用1.9或更高版本.请在项目的Gradle设置或项目的Gradle包装器中指向支持的Gradle版本(如果适用).
我试图修改build.gradle文件并更改类路径行:
classpath 'com.android.tools.build:gradle:0.6.+'
Run Code Online (Sandbox Code Playgroud)
至:
classpath 'com.android.tools.build:gradle:0.7.+'
Run Code Online (Sandbox Code Playgroud)
并且还将compileSdkVersion,buildToolsVersion,minSdkVersion和targetSdkVersion更改为我项目中的值,但不起作用.
谁能帮我?谢谢!
编辑:我今天更新到Android 0.4.2,但新版本没有运气.
我的gradle-wrapper.properties文件正在使用Gradle 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
Run Code Online (Sandbox Code Playgroud)
这是我用来编译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']
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我用于我的应用程序的完整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')
}
Run Code Online (Sandbox Code Playgroud)
现在,当我点击带有Gradle文件的同步项目时,我收到以下错误:
Gradle 'Testing' project refresh failed:
Project with path ':libraries:facebook' could not be found in project ':app'.
Run Code Online (Sandbox Code Playgroud)
我试图改变路径使用:"libraries:facebook","app:libraries:facebook",":app:libraries:facebook"......但我总是遇到同样的错误.
编辑解决方案:
使用Android 0.4.2和最新版本的Facebook SDK非常简单,Facebook SDK包含一个有效的build.gradle文件,只需按照以下步骤操作:
创建一个名为"libs"的文件夹(重要的是,不要使用其他名称!!!如果使用"lib"可能无效),在项目的顶部(重要的是,不要在子文件夹中创建!).
将facebook文件夹从下载的SDK复制到刚刚创建的libs文件夹中.
将此行包含在settings.gradle的顶部:
包括':libs:facebook'
在build.gradle文件的底部,在依赖项组中包含此行:
编译项目(':libs:facebook')
只需单击"使用Gradle文件同步项目",重建项目即可使用!
编辑ANDROID STUDIO> 0.5.2:
好吧,从Android Studio版本0.5.2开始,当创建一个新项目时,会在项目中创建一个"libs"文件夹,所以我认为使用该文件夹更好,所以这些步骤如下:
将facebook文件夹从下载的SDK复制到libs文件夹:YourProjectName/yourProjectName/libs
将此行包含在settings.gradle的顶部:
包括':libs:facebook'
在build.gradle文件的底部,在依赖项组中包含此行:
编译项目(':yourProjectName:libs:facebook')
只需单击"使用Gradle文件同步项目",重建项目即可使用!
要添加到其他答案,请将该行添加
include ':libraries:facebook'到settings.gradle中,您将收到新错误
Gradle 'Android' project refresh failed: Configuration with name 'default' not found.
Run Code Online (Sandbox Code Playgroud)
但是,这就是我们所说的进步.
EDI:
好的,现在它正在工作,这正是我所做的. - 我从一开始就把FB SDK放在错误的路径上,我创建了一个与我的应用程序处于同一级别的库文件夹,你不应该,它不会工作. - 由于Android Studio 0.4.+文件夹名称应该是libs而不是库
在项目的根目录下创建文件夹libs(找到settings.gradle的地方)
从libs文件夹中的Facebook SDK复制Facebook文件夹
在您的主应用程序包含之前settings.gradle添加include ':libs:Facebook'
在主应用程序的build.gradle中,在依赖项中添加此行
compile project(':libs:facebook')
Run Code Online (Sandbox Code Playgroud)
确保Android Support V4也是您的依赖项之一,即:
compile 'com.android.support:support-v4:18.0.0'
Run Code Online (Sandbox Code Playgroud)
这里还有我的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']
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在同步gradle,一切都应该正常,我在Android Studio 0.4.2 + Facebook SDK 3.6.0
| 归档时间: |
|
| 查看次数: |
4669 次 |
| 最近记录: |