我再次迷失在我的应用程序的Facebook登录部分。那么发生的事情是我从facebook网站本身下载了facebook SDK然后使用eclipse导出项目用gradle用于android studio。现在在我的主要应用程序在Android的项目结构中我导入了我转换然后在依赖项上的facebook的模块我在我的主应用程序中添加了facebook的模块依赖项。现在我尝试导入facebook包,它在我的MainActivity中运行正常。现在,在我尝试运行之后,会出现错误,请参见屏幕截图:
我尝试使用./gradle清理两个项目,它清理得很好,但我得到了构建部分的错误。我认为在gradle结构中导出facebook项目后出了问题。我该如何解决这个错误?有人遇到过这个吗?
答案 0 :(得分: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')
}
答案 1 :(得分:5)
我们几乎在同一时间遇到了完全相同的问题,这就是我在我的案例中解决它的方法。
将Facebook SDK项目移至某个远程位置。
在父Gradle项目中创建一个新的Android库模块。它应该为Gradle设置。比如说它叫'Facebook'。检查其Android facet确实是一个库模块。
将所有必要的源,资源,清单和属性文件添加到适当位置的新模块中。
修改父项目的settings.gradle文件,使其包含include ':Facebook', ...
通过打开build.gradle文件并将compile project(':Facebook')
添加到依赖项中,将Facebook上的依赖项添加到主项目“Echo”。
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" />
。
从父路径运行./gradlew clean && ./gradlew build
。
在此清理Android Studio中的依赖项之后,在Android Studio中为您的Echo项目设置绝对apk路径。这可能无法为您解决所有问题,但我认为这些是帮助我的关键步骤,尤其是第4步。一切顺利,您将更接近解决这个问题。
你可以尝试在某些地方导入Facebook的ant build.xml,然后报告你的情况,但是当我已经解决了这个错误时,我发现我收到了目标重新声明错误。