AAR 是 Google 专门为 Android Studio 推出的一种库文件格式,用于便捷的分享和使用Android Library 项目
而被 Google 放弃的 Eclipse ADT 没办法像使用 jar 那样使用 AAR,但是我们可以使用 AAR 里的文件快速创建一个 Eclipse Library 项目来使用
AAR -> Eclipse Library
下载神策sdk, 我是不知道SDK就究竟长啥样的:文件夹、jar、aar。搞得我晕,经过这次终于清晰了!
https://dl.bintray.com/zouyuhan/maven/com/sensorsdata/analytics/android/SensorsAnalyticsSDK/(选择版本下载的就是神策官方的SDK.aar包)
记录一下我遇到的坑:
1.直接在GitHub上下载神策Dome,把里面的 SensorsAnalyticsSDK文件夹转成eclipse项目引用到公司项目里,与公司项目出现v7包冲突无法解决。
2.下载神策SDK.AAR后,根据教程能够正确引用,在转换后神策SDK项目的 Android Manifest.xml 会出错。
错误位置:android:authorities="${applicationId}.SensorsDataContentProvider" 此处 ${applicationId}在eclipse上是没有办法使用的,需要换成你项目的包名(包名错误神策无法上传数据)。
1.将 AAR 文件后缀名改为 ZIP 并解压;
2.在解压得到的目录里创建一个libs文件夹,然后将classes.jar文件和jni文件夹下的所有文件移到libs文件夹下;
3.将proguard.txt文件的内容拷贝到你的项目的proguard-project.txt文件中;(神策AAR包里没有proguard.txt文件,忽略或建一个空的proguard-project.txt)
4.在解压得到的目录里创建project.properties文件,内容如下:
target=android-22
android.library=true
target的值随 AAR 里 Android Manifest.xml 文件的targetSdkVersion属性值而定;
5.删除aapt和jni文件夹以及R.txt和proguard.txt文件。
至此一个 Eclipse Library 项目已经构建完成了,接下来只需打开 Eclipse 导入项目并在你的项目中配置引用这个项目即可(File--Import--Android--Existing Android...--你的项目文件夹。记住勾选is Library!)
FAQ:
运行时如果有 library 中的 Activity 或其他四大组件找不到(ActivityNotFoundException)、asset 资源找不到,jar或so找不到的情况就请参考【Android】Eclipse引用 library 时的常见异常
Activity 报java.lang.NoClassDefFoundError: *.Activity异常,通常是因为这个 AAR 里的 Activity 继承或实现了其它 AAR 中的类或接口,但是你没有导入 AAR 需要的依赖,导致运行时 AAR 里的 Activity 无法实例化,解决办法就是导入全部需要的依赖,具体需要什么依赖你就自己找到AAR的pom文件查看或者反编译相应出错的类查看
参考:
链接:http://www.jianshu.com/p/ccf306e08d5b