• AS 3.1 项目打包成jar或aar


    1.首先明白一个道理。

      Android Studio编译的时候会自动将项目生成jar和aar的,我一开始以为jar需要自己单独生成,其实AS已经自动生成了,网上找的很多资料都是一个复制的过程而已。

      只不过在AS3.1以前是放到build/intermediates/bundles文件夹里面。

      然而现在换成了buildintermediates/packaged-calsses文件夹里面了,以后也不知道会放哪儿了,这是一坑。

    2.通常第一步都是一个新建一个module。

      如果直接从已经完成的项目出发,可以直接修改build.gradle第一行,改成apply plugin:'com.android.library';

      但是这么一修改,可能会出现很多错误,什么参数错误,什么资源文件有问题等。

      保险起见,从“0”开始。

      新建一个module,注意选择Android Library类型。

      把一些需要打包的文件统统写到这个library里面,如果有什么错误的话,就一个一个去解决吧。

      将module完善之后,就开始打包了。

    3.在module的build.gradle配置生成jar的方案。

      在文末添加如下代码:

    //修改jar名字+将指定jar生成的地方
    task makeJar(type:Copy){
        //如果之前存在,则先删除
        delete 'build/libs/test.jar'
        //设置拷贝的文件
        from('build/intermediates/packaged-classes/debug/')
        //生成jar包后的文件目录位置
        into('build/libs/')
        //include,exclude参数来设置过滤
        include('classes.jar')
        //重命名
        rename('classes.jar','test.jar')
    }
    
    makeJar.dependsOn(build)

      

    4.利用命令行执行该方案。

      在AS最下方的Terminal中输入命令即可。

      如果是MAC电脑:./gradlew makeJar 

              如果报错,参考一下这篇文章。

      如果是Windows电脑: gradlew makeJar

              如果报错,一般都是没有配置gradle环境,谷歌一下解决方案呗。

      幸运的话,可以在build/libs文件夹下看到生成的jar文件了。

    5.简单理解一下jar和aar的区别吧。

      参考文章:AndroidStudio项目打包成jar。

      在Build Success后,在module的build/outputs/aar文件夹下会有一个aar文件。

      在module的build/libs或自己定义的其他位置下会有一个jar文件。

      二者区别:

      jar:  只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。

      aar:  包含jar包和资源文件,如图片等所有res中的文件。

      aar编译完就自动生成了,所以不同担心资源问题。

    6.如何使用aar文件。

      很简单。

      i.将aar文件拷贝至目标项目的app/libs文件夹下。

      ii.在app下的build.gradle中添加如下代码:    

        分别是这两块:  

    repositories{
            flatDir{
                dirs 'libs'
            }
        }
    implementation(name:'librarydemo-release',ext:'aar')

      Sync Now一下,如果没有报错,应该就是成功引用了。

      看一下依赖的外部类,已经有了刚才我们引用的library了。

      

    7.如何引用jar文件。

      这个网上搜一大把。方法也是类似的,更加简单。

      先将jar拷贝至目标项目的app/libs文件夹下。

      mac电脑操作如下:右键->add as library->选择当前mudule->OK.

      windows电脑类似的。

    8.其实jar文件也是可以使用资源文件的。

      稍微有点麻烦。

      首先将jar包中用到的资源文件放到自己的项目中。

      然后在自己的项目中利用反射获取。参考文章点我。

  • 相关阅读:
    注册算法入门
    call传参之通过堆栈
    winhex注意
    输入字符串长度
    integer promotion
    网页flash兼容浏览器代码
    逆向工程——注册篇
    esp定律的一点说明
    base64
    意外
  • 原文地址:https://www.cnblogs.com/Jason-Jan/p/9150833.html
Copyright © 2020-2023  润新知