概述
最近公司项目组要求升级facebook的sdk版本,本以为下载引入就可以了,可是事实上却不是这样的。
目前状况:
1、公司打包系统只支持ant打包方式
2、最新版的facebook只提供maven引入和aar包引入方式
so,开始搞吧
1、找到官方文档https://developers.facebook.com/docs/facebook-login/android,认真阅读
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-login:4.33.0
资源包,很疑惑我集成登录却没有引入这个包。这是由于我们没有用到facebook的登录按钮等资源,所以没有引用,登录的代码逻辑其实都在common资源包下
3、sdk下载完成后,将显示模式改为Project模式,找到facebook相关资源包,你会发现会自动下载关联的包facebook-core:4.33.0
,请看图:
4、你以为就要结束了,其实苦逼之路刚起步,先找个空白的地方创建个文件夹,姑且叫做“facebooksdk”吧,挨个点开三个目录,找到class对应的文件夹,拷贝到“facebooksdk”下
5、稍微留意下你会发现,common包和share包是带资源文件的,这时候需要分别往里创建一个.project文件、一个libs文件,并将jar包拷贝到libs下,这样就变成了一个eclipse依赖工程了,请看图
6、现在可以打开我们的正经的eclipse工程了,导入两个依赖工程”facebook-common”和”facebook-share”,主工程下导入facebook-core.jar
7、激动的运行了一下,尼玛提示cardview不存在,cardview属于v7包下的独立包,还提示fackbook资源文件中部分属性无法找到,这些都是v7包的属性,我发现eclipse中v7用的26.1.0的版本报错,androidstudio中用的27.0.2不报错,那就回到AndroidStudio工程下找v7包和cardview包吧,请看图:
8、这两个包都包含资源文件,同样的方法,转变成两个eclipse依赖工程,添加到正经的那个工程下。点击运行,尼玛,v4、v7版本不一致,一看项目还引用了v4包,要了亲命了,如果你了解v4包结构,你就知道有多坑了
9、回到AndroidStudio工程下,找到v4的包,请看图:
10、v4支持包包括**7个**aar包,其中support-compat、support-media-compat
这两个包包含资源文件,需要将资源目录转成eclipse工程,同样的方式引入,clean,不报错了,嘻嘻
11、运行,whats the fuck, 又报错了,报错原因如下:
Caused by: java.lang.ClassNotFoundException: Didn't find class "bolts.AppLinks" on path: ...
,找不到bolts下的AppLinks
12、我怀疑fackbook还关联下载了其他的东东,继续回到AndroidStudio下,寻找带bolts的包,果然找到了,而且还有三个,请看图:
13、这三个包都没有资源文件,不管三七二十八,直接把这3个jar包拷贝到eclipse主目录下,默默祈祷了2s钟,点击运行
14、阿西吧,终于好了,请看图:
15、到这里已经结束了,不过我觉得bolt-android、bolt-tasks
这俩没用到,我却把他们引入了,浑身难受啊,于是删除了这两个,果然一切都正常
花了大半天,终于把这个任务搞定了
心得体会:现在很多第三方的sdk已不再支持eclipse项目,当你还在用eclipse集成sdk的时候,你要处理关联的aar包转换问题、64k超限问题、包重复引用问题、jar包被多次引用问题(A引用a.jar,B引用a.jar)、依赖工程依赖层级增加(A依赖B、B依赖C、C依赖D)、各种编译报错、n个依赖工程、n个jar包。
我只是更新了 facebook的sdk就修改了将近20个资源包!
所以请敬爱生命,远离eclipse!
最后
以上就是英勇奇迹为你收集整理的facebook接入到eclipse的心酸路的全部内容,希望文章能够帮你解决facebook接入到eclipse的心酸路所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复