Android共享包分两类:
1:*.jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
2:*.aar: 包含所有资源 ,class以及res资源文件全部包含
下面主要给大家介绍aar包的生成和引用方法:
一、’在Android studio打开一个工程,然后新建一个Module,新建Module时候选择Android Library,后面按新建普通工程操作
二、新建Module 类型为android Library 后如下图所示
三、.在新建的Module中编写完代码后,接下来编译整个工程后就会自动生成aar包,包的路径在新建的Module ==》 build ===》outputs ==>aar目录下。 如图
四、aar包生成成功后,就可以把生成好的.aar文件拷贝到需要引用的工程项目中的libs目录下;
接下来还需要配置一下项目中的build.gradle文件:
①在android的目录下添加:
repositories {
flatDir {
dirs 'libs'
}
②在dependencies 的目录下添加:
compile(name:'你的aar包名', ext:'aar')
完整的配置文件:
③.编译一次工程, 编译成功后,你将能在External Libraries列表中看到解析出来的aar文件,之后就可以在项目中直接调用aar共享包里面的所有资源了。
两种思路:
1.像上面的,新建一个新的library配置一下,把你的代码java,res,libs什么的拷贝过去,重新配置一下gradle的文件。
2.把现有的项目,删掉不必要的文件,修改一下配置文件就可以导入了。这种方法是自己摸索出来的,下面要详细分享一下这种方法。
第一步:看到下面是一个准备的Android Studio项目,项目名叫CanvasDemo。把选中的删除,这些都是不必要的。
第二步:把app目录下的所有东西拖到根目录下,然后把app的目录删掉。
第三步:修改配置文件了,(1)把app.iml文件更名为与项目一致的CanvasDemo.iml,再用notepad++打开该文件,可见有两处的是 :app 的,也把它改为与项目名一致 :CanvasDemo ,保存一下。
第四步:打开build.gradle文件,要改两个地方,(1)把apply plugin: "com.android.application"这一句话改为apply plugin: "com.android.library",(2)带有applicationId开头的这一句话删。
第五步:拷贝把这个CanvasDemo到项目的根目录中
第六步:切换到Android目录下,打开settings.gradle文件,include这里加个逗号,加上':CanvasDemo'。这里就是上面为什么要把.iml后缀的文件名改为与项目名一致,并且把该文件里面的一些带:app的改为与项目名一致的:CanvasDemo。
第七步:最后一步就是在工程上加上该library的编译,手动和自动两种方式上面有提过到了,你懂得了,不懂往上一看就可以了,详细图解。
ps:在生成库后,build工程可能会遇到的坑:
1、manifest清单文件会报ic_launcher冲突错误,这是由于aar库里面的当前项目资源文件重名造成的。
解决的办法就是在application里面添加一个属性:
tools:replace="android:icon,android:theme"。
2、调试运行项目的时候,手机上面会出现2个相同的图标,这也是因为aar库里面清单文件里面主入口Activity的属性造成的:
<category android:name="android.intent.category.LAUNCHER" />
如果出现这个情况就需要先把共享的项目中主入口Activity的这个属性删除,然后重新从第一步开始生成库就可以了。