项目引用本地aar文件的方法(补充)

AS生成aar包并在其他工程引用aar包和遇到的坑#

前一段时间也写过一篇关于aar生成和引用的文章,有网友反映格式不标准,还有一些遇到的问题没有发出来,所以再重新整理出来,图文并茂流程清晰,希望大家多支持!话不多少干货整起。

生成、导出aar

  1. 在项目中File-New-New Module-Android Library-Next,如下图

    微信截图_20181212105617.png
  2. 到此会在你的项目中,生成一个Library,如下图

    微信截图_20181212105811.png
  3. 在生成的Library的项目中开发,开完完成,运行assamble,生成aar,如下图

    微信截图_20181212105915.png
  4. 到此生成了aar包,导出即可

工程引用aar

  1. 把上一步导出的aar引入到需要引用的项目中,一般放在app/libs文件夹中,在app/build.gradle中配置参数,如下图

    微信截图_20181212114029.png
  2. 在app的build.gradle文件添加如下内容

     apply plugin: 'com.android.application'
    
     android {
       xxxx
     }
    
     repositories {
       flatDir {
         dirs 'libs' //this way we can find the .aar file in libs folder
       }
    
     }
    
     dependencies {
    
       implementation(name: 'mylibrary-release', ext: 'aar')
    
     }
    
  3. Rebuild运行成功,直接引用即可,到此完成aar的生成、导出、引用。

引用aar时找不到arr的远程依赖库问题

问题描述:

如上述,在library中引入第三方依赖(如下图), 编译生成aar,但是在引入的项目中编译运行时报错: Caused by: java.lang.ClassNotFoundException:(如下图)

微信截图_20181212135344.png
微信截图_20181212144615.png

解决办法:

  1. 在引入aar的项目中的app/build.gradle添加找不到的第三方依赖,重新编译成功。

  2. 需要上传aar,不管上传本地还是maven

    1. 生成aar目录, 具体参考https://www.jianshu.com/p/64c23ae5483d,详细描述。
    2. 在需要的引入的项目的根build.gradle和app/build.gradle添加配置参数,重新编译成功。

    根build.gradle

          buildscript {
               repositories {
                     maven{
                          url 'xxxx'//本地路径或者远程仓库路径
                          //file://D://WorkSpace/myaar/repository/
                     }
               }
          }
          allprojects {
               repositories {
                    maven{
                         url 'xxxx'//本地路径或者远程仓库路径
                          //file://D://WorkSpace/myaar/repository/
                    }
               }
          }
    

    app/build.gradle

          android {
              xxxx......
          }
          dependencies {
               implementation 'xxx'//远程依赖名称和版本号
               //com.my.test:myaar:1.0.0
          }
    

注释:下一篇详细写一下生成aar构建maven,发布在本地和github引用

推荐阅读更多精彩内容