Uma*_*Uma 104 android facebook facebook-android-sdk android-studio android-gradle-plugin
我正在使用Android Studio关注Facebook SDK for Android.当我运行我的应用程序时,我收到了下面提到的警告.
Gradle: module 'facebook' won't be compiled. Unfortunately you can't have non-Gradle Java module and Android-Gradle module in one project.
Run Code Online (Sandbox Code Playgroud)
我该怎么解决这个问题?
我尝试了@Scott Barta的回答,并收到以下错误消息.
A problem occurred configuring project ':App'.
> Failed to notify project evaluation listener.
> A problem occurred configuring project ':libraries:facebook'.
> Failed to notify project evaluation listener.
> Could not resolve all dependencies for configuration ':libraries:facebook:_DebugCompile'.
> Could not find any version that matches com.android.support:support-v4:+.
Required by:
MyApplication2.libraries:facebook:unspecified
Run Code Online (Sandbox Code Playgroud)
Sco*_*rta 250
注意
对于Android Studio 0.5.5及更高版本以及更高版本的Facebook SDK,此过程比下面记录的更简单(这是为两者的早期版本编写的).如果您正在运行最新版本,那么您需要做的就是:
Ctrl + Shift + Alt + S,然后选择依赖项选项卡.单击+按钮并选择Module Dependency.在弹出的新窗口中选择:facebook.旧版Android Studio和旧版Facebook SDK的说明
这适用于Android Studio 0.5.4及更早版本,并且在Facebook为分发提供Gradle构建文件之前对Facebook SDK的版本最有意义.我不知道他们在哪个版本的SDK中进行了更改.
Facebook在https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android-using-android-studio/3.0/页面上"将SDK导入Android Studio项目"下的说明是错误的对于基于Gradle的项目(即您的项目是使用Android Studio的New Project向导构建的和/或具有build.gradle应用程序模块的文件).请遵循以下说明:
libraries在项目的主目录下创建一个文件夹.例如,如果您的项目是HelloWorldProject,则应创建一个HelloWorldProject/libraries文件夹.
现在将facebookSDK安装中的整个目录复制到libraries刚刚创建的文件夹中.
删除libs目录中的文件夹facebook.如果你喜欢,删除project.properties,build.xml,.classpath,和.project.文件也是如此.你不需要它们.
使用以下内容build.gradle在facebook目录中创建文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
dependencies {
compile 'com.android.support:support-v4:+'
}
android {
compileSdkVersion 17
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,根据您在执行此操作时所遵循的这些说明,您可能需要调整该classpath 'com.android.tools.build:gradle:0.6.+'行以引用较新版本的Gradle插件.很快我们将需要0.7或更高版本.试试看,如果你得到一个错误,那就是需要更新版本的Gradle插件,那就是你必须编辑的那一行.
确保已安装SDK管理器中的Android支持库.
settings.gradle在应用程序的主目录中编辑您的文件并添加以下行:
include ':libraries:facebook'
Run Code Online (Sandbox Code Playgroud)如果您的项目已在Android Studio中打开,请单击工具栏中的"使用Gradle文件同步项目"按钮.一旦完成,facebook模块应该出现.



SBe*_*413 108
Facebook确实已将SDK添加到Maven Central存储库中.要使用maven repo的实例配置项目,您需要做两件事:
在项目顶级build.gradle文件中,添加Maven Central存储库.我看起来像这样:
repositories {
jcenter() // This is the default repo
mavenCentral() // This is the Maven Central repo
}
Run Code Online (Sandbox Code Playgroud)在app-level build.grade文件中,添加Facebook sdk依赖项:
dependencies {
compile 'com.facebook.android:facebook-android-sdk:4.5.0' // Adjust the version accordingly
// All your other dependencies.
}
Run Code Online (Sandbox Code Playgroud)您还可以调整特定的Facebook SDK版本.有关maven存储库中可用版本的列表,请单击此链接.
Rom*_*ain 17
Facebook在maven central上发布SDK:
只需添加:
repositories {
jcenter() // IntelliJ main repo.
}
dependencies {
compile 'com.facebook.android:facebook-android-sdk:+'
}
Run Code Online (Sandbox Code Playgroud)
小智 12
Scott Barta的解决方案对我有用,除了我必须将这些添加到我的主项目build.gradle文件的依赖项中:
compile files('libs/android-support-v4.jar')
compile project(':libraries:facebook')
Run Code Online (Sandbox Code Playgroud)
另外值得一提的是,您需要确保:
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 7
targetSdkVersion 18
}
Run Code Online (Sandbox Code Playgroud)
在build.gradle文件中都是一样的......一旦我这样做,它就像一个魅力.
使用git时,您可以轻松地合并最新的facebook-android-sdk.
git submodule add
https://github.com/facebook/facebook-android-sdk.gitinclude ':facebook-android-sdk:facebook'compile
project(':facebook-android-sdk:facebook')| 归档时间: |
|
| 查看次数: |
149607 次 |
| 最近记录: |