zoukankan      html  css  js  c++  java
  • 【转】【Android】1分钟不用改任何代码在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

    1. 将 AAR 文件后缀名改为 ZIP 并解压
    2. 在解压得到的目录里创建一个 libs 文件夹,然后将 classes.jar 文件和 jni 文件夹下的所有文件移到 libs 文件夹下
    3. proguard.txt 文件的内容拷贝到你的项目的 proguard-project.txt 文件中
    4. 在解压得到的目录里创建 project.properties 文件,内容如下:
      target=android-22
      android.library=true
      
      target 的值随 AAR 里 Android Manifest.xml 文件的 targetSdkVersion 属性值而定
    5. 删除 aaptjni 文件夹以及 R.txtproguard.txt 文件

    至此一个 Eclipse Library 项目已经构建完成了,接下来只需打开 Eclipse 导入项目并在你的项目中配置引用这个项目即可

    FAQ:

    • 运行时如果有 library 中的 Activity 或其他四大组件找不到(ActivityNotFoundException)、asset 资源找不到,jar或so找不到的情况就请参考 【Android】Eclipse引用 library 时的常见异常
    • Activity 报 java.lang.NoClassDefFoundError: *.Activity 异常,通常是因为这个 AAR 里的 Activity 继承或实现了其它 AAR 中的类或接口,但是你没有导入 AAR 需要的依赖,导致运行时 AAR 里的 Activity 无法实例化,解决办法就是导入全部需要的依赖,具体需要什么依赖你就自己找到AAR的pom文件查看或者反编译相应出错的类查看

    Android 官方提供的 ADT 插件在引用 library 项目时看似很美好,但有很多坑

    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
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    Linux性能监控
    程序员技术练级攻略
    使用 GDB 调试多进程程序
    nginx下面部署fast-cgi和C++【原】
    ROS Learning-024 (提高篇-002) rviz的安装和使用
    ROS Learning-023 (提高篇-001) 准备工作 --- 安装一些必要的软件包
    STM32 C++编程 005 I2c(Soft)类
    Python 网络爬虫 005 (编程) 如何编写一个可以 下载(或叫:爬取)一个网页 的网络爬虫
    设置 PyCharm 软件中 Terminal 窗口 中启动的 python 交互命令的版本
    在PyCharm 软件中设置你的项目 使用的Python版本
  • 原文地址:https://www.cnblogs.com/tc310/p/9154930.html
Copyright © 2011-2022 走看看