博观而约取,厚积而薄发。这篇文章主要讲述Android1分钟不用改任何代码在Eclipse中使用AAR相关的知识,希望能为你提供帮助。
原文:https://www.jianshu.com/p/ccf306e08d5b?hmsr=toutiao.io&
utm_medium=toutiao.io&
utm_source=toutiao.io
AAR 是 Google 专门为 android Studio 推出的一种库文件格式,用于便捷的分享和使用
Android Library 项目
而被 Google 放弃的 Eclipse ADT 没办法像使用 jar 那样使用 AAR,但是我们可以使用 AAR 里的文件快速创建一个 Eclipse Library 项目来使用
AAR ->
Eclipse Library
- 将 AAR 文件后缀名改为 ZIP 并解压
- 在解压得到的目录里创建一个
libs
文件夹,然后将classes.jar
文件和jni
文件夹下的所有文件移到libs
文件夹下 - 将
proguard.txt
文件的内容拷贝到你的项目的proguard-project.txt
文件中 - 在解压得到的目录里创建
project.properties
文件,内容如下:target=android-22 android.library=true
target
的值随 AAR 里 Android Manifest.xml 文件的targetSdkVersion
属性值而定 - 删除
aapt
和jni
文件夹以及R.txt
和proguard.txt
文件
FAQ:
- 运行时如果有 library 中的 Activity 或其他四大组件找不到(ActivityNotFoundException)、asset 资源找不到,jar或so找不到的情况就请参考 【Android】Eclipse引用 library 时的常见异常
- Activity 报
java.lang.NoClassDefFoundError: *.Activity
异常,通常是因为这个 AAR 里的 Activity 继承或实现了其它 AAR 中的类或接口,但是你没有导入 AAR 需要的依赖,导致运行时 AAR 里的 Activity 无法实例化,解决办法就是导入全部需要的依赖,具体需要什么依赖你就自己找到AAR的pom文件查看或者反编译相应出错的类查看
1.不会自动合并 library 中的 asset 资源ADT插件并不会自动将 library 里的 asset 资源合并到你的项目中,因此你需要手动拷贝
2.不会自动合并 library 中的 AndroidManifest 文件如果你引用的 library 中包含有四大组件,在不做任何额外配置的情况下你永远也启动不了 library 中包含的四大组件(例如启动activit时抛ActivityNotFoundException),因为需要你在你的项目的project.properties文件中配置一下ADT才会合并 library 中的 AndroidManifest文件,如下:
manifestmerger.enabled=true
此属性需要 ADT 17 以上版本
3.不会自动导入 library 中 libs 目录下的 jar 包 或 so 文件解决这个问题只需升级 ADT 到 17 以上版本即可
虽说现在大部分都是用 Android Studio 开发 Android 了,但还是有部分人使用 Eclipse
的,比如大部分的游戏开发人员在集成一些第三方 SDK 的时候主要还是用的 Eclipse,所以这些问题还是有记录价值的
作者:浮游大虾
链接:https://www.jianshu.com/p/ccf306e08d5b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。【Android1分钟不用改任何代码在Eclipse中使用AAR】
推荐阅读
- appium键盘控制目录
- Android开发 retrofit入门讲解
- uni-app开发微信小程序的几天时间
- Appium-实战之启动App 获取信息说明
- Appium的测试简单流程
- PowerShell do-while循环语句
- PowerShell Copy-Item| PowerShell复制文件
- continue和break语句示例
- PowerShell Clear-Content清除内容