安卓开发之将模块打包成aar

背景

做sdk的时候,需要把自己的demo等模块打包成aar,供对方调用。因此,记录总结一下用AS打包aar以及使用的过程

步骤

修改gradle文件

打开模块的gradle文件,修改如下:

// apply plugin: 'com.android.application'
apply plugin: 'com.android.library'

android {
    ..
    defaultConfig {
//        applicationId "com.example.songzeceng.firstjd"
        ...
    }
    ...
}

...
}

把最上面的application改成library,再把applicationId去掉,这样我们的工程就能作为库来使用了

打包

改完gradle后,就能直接通过gradle命令打包成aar了,但一定要是release版的

不过我们不需要敲命令,点击界面左上角的gradle,再点击assembleRelease就可以了

而后,就会在模块名\build\outputs\aar目录下找到生成的aar了

使用

首先要把生成的aar拷到目标项目的lib文件夹里

而后在目标模块的gradle文件里,加上对它的依赖

dependencies {
    ...
    implementation files('libs/app-release.aar')
}

同步之后,就可以使用aar的内容了

遇到的坑

 java.lang.NoSuchFieldError: No field xxx of type I in class Lcom/xxxx/module/R$id; or its superclasses 

原因:aar和目标模块中存在同名的布局文件

解决方法:修改两个布局文件的名字,使之不重复

结语

本地依赖aar只适用于gradle3及以上的版本,gradle3以下只能本地依赖jar

猜你喜欢

转载自blog.csdn.net/qq_37475168/article/details/86672232