2

我再次迷失在我的应用程序的这个 facebook 登录部分。那么发生的事情是我从 facebook 网站本身下载了 facebook SDK,然后使用 eclipse 导出带有 gradle 的项目以用于 android studio。现在,在我的 android 主应用程序的项目结构中,我导入了我转换的 facebook 模块,然后在依赖项上我在我的主应用程序中添加了 facebook 的模块依赖项。现在我尝试导入 facebook 包,它在我的 MainActivity 中运行良好。现在,在我尝试运行它之后,会出现错误,请参见屏幕截图:

在此处输入图像描述

我尝试对这两个项目使用 ./gradle clean 并且它清理得很好,但我得到了构建部分的错误。在我以 gradle 结构导出 facebook 项目后,我认为确实出了点问题。我该如何解决这个错误?有人遇到过这个吗?

4

2 回答 2

7

为我工作:将 jar 文件拖放到项目的库中(单击确定复制等)。然后右键单击jar文件->添加为库。

然后打开 gradle.build 并更改:

前:

dependencies {
    compile files('libs/android-support-v4.jar')
}

后:

dependencies {
    //compile files('libs/android-support-v4.jar')
    compile fileTree(dir: 'libs', include: '*.jar')
}
于 2013-08-08T08:06:46.733 回答
5

我们几乎在同一时间遇到了完全相同的问题,这就是我解决这个问题的方法。

  1. 将 Facebook SDK 项目移动到某个远程位置。

  2. 在父 Gradle 项目中创建一个新的 Android 库模块。它应该为 Gradle 设置。比如说,称它为“Facebook”。检查它的 Android facet 确实是一个库模块。

  3. 将所有必要的源、资源、清单和属性文件添加到此新模块的适当位置。

  4. 修改父项目的settings.gradle文件,使其包含include ':Facebook', ...

  5. 通过打开它的 build.gradle 文件并添加compile project(':Facebook')到依赖项,将 Facebook 上的依赖项添加到您的主项目“Echo”。

  6. Echo 和 Facebook 现在可能都依赖于 android 支持库;从您的 Echo 项目中删除此依赖项。例如,compile fileTree(dir: 'libs', include: '*.jar', exclude: 'android-support-v4.jar'). 检查 Facebook.iml 文件,您需要导出的依赖项<orderEntry type="library" exported="" name="android-support-v4" level="project" />

  7. ./gradlew clean && ./gradlew build从父路径运行。

清理完 Android Studio 中的依赖后,在 Android Studio 中为您的 Echo 项目设置绝对 apk 路径。这可能无法为您解决所有问题,但我认为这些是帮助我的关键步骤,尤其是第 4 步。一切顺利,您将更接近解决这个问题。

您可以尝试在某个地方导入 Facebook 的 ant build.xml 并报告您的进展情况,但我发现当我已经解决了这个错误时,我遇到了目标重新声明错误。

于 2013-06-18T14:01:50.490 回答