美文网首页
android studio导入module模块打jar包或aa

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

作者: tjjlhst | 来源:发表于2018-11-14 02:10 被阅读0次

    在项目中,会遇到一些已经写好的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.

    相关文章

      网友评论

          本文标题:android studio导入module模块打jar包或aa

          本文链接:https://www.haomeiwen.com/subject/lrzrfqtx.html