aar 转 jar - 导入eclipse使用 (友盟转阿里百川趟出来的坑)

一、定义

由于友盟用户反馈的SDK不在维护,现在已转交阿里百川,苦逼的我又开始更新旧项目的SDK(eclipse版本)。由于eclispse 不识别aar,所以我的趟坑之旅开始。。。

在aar 转成jar的流程用遇上了一些问题。请看下面。。

二,aar转jar

1.将aar解压缩,一般会有这些文件:(上图)

aar 转 jar - 导入eclipse使用 (友盟转阿里百川趟出来的坑)_第1张图片

很清晰的一个目录结构:(下面代码转移要重新建立一个library工程)

1) 、aapt即AndroidAsset Packaging Tool,这个存放工具的文件夹,一般为空,不是我们要的东西,直接不看。

2)aidl assets jni libs res 这些文件,里面如果有文件,将其拷贝到对应目录下

3)AndroidManifest.xml 要把里面的权限,还有activity service 还有广播之类的,全部移到你主工程的AndroidManifest.xml (这里是自己的主工程)



2.为什么要重新建立一个library工程呢?因为不作为一个library的话,如果你的aar解压出来的文件目录res 有文件的话,运行后你会得到一个异常:(下面是我的异常)


aar 转 jar - 导入eclipse使用 (友盟转阿里百川趟出来的坑)_第2张图片

ClassNotFoundException 于是我百思不得姐。。找不到class文件。。什么鬼? 

原来在生成aar包的时候,资源文件都是被生成绝对的访问路径。这个路径就是 packageName(包名).R$XX

于是我查询了一下我的library 的包名,并不是上面的com.alibaba.sdk.android.feedback;所以我把改了一下,于是异常消除。


aar 转 jar - 导入eclipse使用 (友盟转阿里百川趟出来的坑)_第3张图片

3.由此可见,aar其实就是一个library 的库,在转成jar包时,如果有res文件,还是得老老实实的转成library工程,确实有点蛋疼。因此还在用eclipse 的兄弟们,及早转成as吧!不然后面问题会越来越多!!


附录:


阿里百川反馈sdk 转成 eclipse的library库

记得:

在application加入:FeedbackAPI.init(this, ALIBAICHUAN_FEEDBACK_APPKEY);

在androidManifest.xml 加入:


aar 转 jar - 导入eclipse使用 (友盟转阿里百川趟出来的坑)_第4张图片

你可能感兴趣的:(aar 转 jar - 导入eclipse使用 (友盟转阿里百川趟出来的坑))