facebook接入到eclipse的心酸路

匿名 (未验证) 提交于 2019-12-03 00:19:01

最近公司项目组要求升级facebook的sdk版本,本以为下载引入就可以了,可是事实上却不是这样的。
入坑原因:
1、公司打包系统只支持ant打包方式
2、最新版的facebook只提供maven引入和aar包引入方式
问同事说上一个版本怎么集成的,得到的答案是几年前的包,那时候sdk有支持eclipse的依赖工程。
好吧,开始搞吧。
1、找到官网文档,认真阅读
2、创建一个AndroidStudio工程,maven引入以下资源

   dependencies {         implementation fileTree(dir: 'libs', include: ['*.jar'])         implementation 'com.android.support:appcompat-v7:27.0.2'         implementation 'com.android.support:cardview-v7:27.0.2'         compile 'com.facebook.android:facebook-common:4.33.0'         compile 'com.facebook.android:facebook-share:4.33.0'     }

注:由于我们没有用到facebook的登录按钮等资源,所以没有引用facebook-login:4.33.0资源

3、sdk下载完成后,将显示模式改为Project模式,找到facebook相关资源包,你会发现会自动下载关联的包facebook-core:4.33.0,请看图:

4、你以为结束了,其实苦逼之路刚开始,先找个空白的地方创建个文件夹,姑且叫做“facebooksdk”吧,挨个点开三个目录,找到class对应的文件夹,拷贝到“facebooksdk”下

5、稍微留意下你会发现,common包和share包是带资源文件的,这时候需要分别往里创建一个.project文件、一个libs文件,并将jar包拷贝到libs下,这样就变成了一个eclipse依赖工程了,请看图

7、现在可以打开我们的正经的eclipse工程了,导入两个依赖工程”facebook-common”和”facebook-share”,主工程下导入facebook-core.jar

8、激动的运行了一下,尼玛提示cardview不存在,cardview属于v7包系列的独立包,那就回到AndroidStudio工程下找v7包和cardview包吧,请看图:

9、这两个包都包含资源文件,同样的方法,转变成两个eclipse依赖工程,添加到正经的那个工程下。点击运行,尼玛,v4、v7版本不一致,一看项目引用了v4包,要了亲命了,如果你了解v4包结构,你就知道有多坑了

10、回到AndroidStudio工程下,找到v4的包,请看图:

11、v4支持包包括7个aar包,其中support-compat、support-media-compat
包含资源文件,需要将资源转成eclipse工程,同样的方式引入,clean,不报错了,嘻嘻
12、运行,whats the fuck, 又报错了,报错原因如下:
Caused by: java.lang.ClassNotFoundException: Didn't find class "bolts.AppLinks" on path: ...,找不到bolts下的AppLinks

13、我怀疑fackbook还关联下载了其他的东东,继续回到AndroidStudio下,寻找带bolt的包,果然找到了,而且还有三个,请看图:

14、这三个包都没有资源文件,不管三七二十八,直接把这3个jar包拷贝到主目录下,默默祈祷了2s钟,点击运行

15、阿西吧,终于好了,请看图:

16、最后总觉得bolt-android、bolt-tasks没用却把他们引入了浑身难受,于是删除了这两个,果然一切正常

花了大半天,终于把这个任务搞定了

心得体会:现在很多第三方的sdk已不再支持eclipse项目,当你还在用eclipse集成sdk的时候,你要处理关联的aar包转换问题、64k超限问题、包重复引用问题、包引用层级增加问题、各种编译报错、n个依赖工程、n个jar包,所以请敬爱生命,远离eclipse!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!