android studio导入module模块打jar包或aar包

在项目中,会遇到一些已经写好的module模块,然后打成jar包或aar包;但是如果这些三方库出现了bug,就需要把module的源代码修改修复那个bug。这个时候如果要导入module模块的话,可以按照以下步骤来。

说步骤前,先分清jar包和aar包的区别

区别:

jar包:只包含class文件和清单文件,不包含资源文件,比如图片等所有的 res下的资源文件;
aar包:aar文件包含所有资源文件,包括class及res资源文件;

打包详细步骤:

1、jar包和aar包都必须要先将module导入,可以新建一个空工程导入(如果有主工程,就直接导入到主工程),File->New->new Module/import Module,这一步简单不做详细介绍

2、修改moudle中的build.gradle文件,将其中的com.android.application修改为com.android.library,并且将applicationId "com.demo.mymoudle"这一行删掉 (必须,否则一个项目就有两个applicationId了,并且module是作为library来打的)

QQ图片20181114010632.jpg

3、主工程app:build.gradle 中添加依赖,导入的时候自动加的

dependencies {
...
compile project(':testlibrary')

}

4、编译我们的module,生成release版本的aar,注意千万不要是debug版本的,
点击最右边的gradle面板,选择我们的module进行编译,CommandLine 指令为assemble(默认生成debug和release)

QQ图片20181114010856.jpg

此处打jar为:

打开module名称->Tasks->other->makeJar

QQ图片20181114012850.png

5、查看module下的build/output文件夹,即可看到生成的aar文件,我们一般选用那个release版本的aar文件即可

QQ图片20181114010905.jpg

项目中添加aar步骤:

1、把aar包直接放入lib中

image

2、在module 里面的build.gradle 的根目录添加

repositories{
  flatDir {
    dirs 'libs'
  }
}

compile(name:'SDK-release', ext:'aar')
image

3、在做完了前三步以后,会看到在项目的 External Libraries 里面看到添加的aar

image

高潮:

往往跑导入的module时,会有挺多问题的,说一下我踩的比较大的坑

1、重复包:如果主项目app和module有导入了重复的jar包,可以对着module点右键,选择Open Module Setting,选择Dependencies,将scope改为provided

QQ图片20181114014429.png

2、混淆:module的混淆一定要关了,主项目app的也和module同步关了,不然会出现类引用没问题,但是跑起来却报错的诡异现象,巨坑;同时混淆文件 proguard.cfp 也会带来一些其他莫名奇妙的报错,需要百度一下解决

3、manifest merge:如果报错里有这个几字眼的话,肯定是module的manifest没有处理干净,譬如出现了label:name 这样的情况,这是不允许的,这个时候就可以直接点开manifest一个一个处理

QQ图片20181114015155.png

4、如果module模块的项目和主工程是同一个的话,尽量导入到主工程去调试,因为module模块和主工程的gradler配置版本是要相同的。如果新建的一个工程,可能gradler和主项目的gradler版本不同而导致项目运行不起来,后续调节也很麻烦

5、其余的坑都可以通过百度去查找出答案,就不详细说了,多百度和查stack overflow

-the end.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容