文档章节

项目迁移打包aar

Magic_锋
 Magic_锋
发布于 2017/04/24 10:49
字数 719
阅读 30
收藏 0

 最近项目需要打包嵌入到别的app中来调用, 我们一直用的是eclipse,很古老...

    想了想,做成库?不可以,还是公布给源码给人家了;

    做成jar?不可以,确切的说是可以, 只不过各种资源文件打不进去, 百度了下还得各种配置,修改,反正看着好繁琐,算了,还是放弃吧...

    听说aar不错,java代码,资源文件都可以,又问了下度娘,还不错,成了....下面就是我记录下自己打的aar过程,毕竟之前很少用studio,不是很熟悉,studio我用的是2.2.3的

    至于项目迁移,我直接用studio导的eclipse的项目,肯定有各种问题,.9图,gradel等..出一个解决一个,反正迁成功了,重点是打成aar

    1. 打开需要打成aar的项目,进到build.gradel中, ,这样修改,application表示的是打包成apk,library表示的打成aar;

    2. 然后强applicationId注掉,

    3. 这时候直接点开右侧gradle,选择需要打成aar的项目进行build,其实和打apk步骤一样了,

    4. 这时候在项目的build下就已经生成了aar文件,请忽略显示,我这截图的不准确,应该为app-release.aar,这时候将这个aar文件copy出去到需要嵌入的项目的libs下,复制的时候ta会提示你是否修改name,然后我就改了...

     5. 然后在需要嵌aar的项目的build.gradle下添加如下

   在依赖下添加如下,这里的name要和libs下的aar文件名字保持一致

   最后build一次,就可以了....

   这时候当你跑起来已经嵌入了aar文件的项目,发现手机上两个这项目的图标....

点开一个是你aar文件的入口...另一个是你嵌入aar文件的项目的入口, 这时候再来看你打成aar文件的那个项目的manifest,将LAUNCHER注掉,再 重新打成aar,就可以了,上面的步骤再走一遍....

 

    还有一点...因为主项目嵌入aar文件,这个时候 可能aar文件中有自定义的application类,但是主项目中也有自己的自定义application类,这时候合并的时候就会有灵异bug,所以需要做的就是

        主项目自定义的application类继承aar文件中的自定义的application的类

    还有在两个项目合并的时候,可能会报有manifest merger failed... 这时候在主项目的manifest的根结点下添加

xmlns:tools="http://schemas.android.com/tools"

在application的节点下添加

 tools:replace="android:icon, android:theme,android:name"

这样就可以了,如果还有报错, 就看log,有时候把android:name 这个去掉,重新build,就OK了

亲身测验,完全可以....不喜勿喷

    

© 著作权归作者所有

共有 人打赏支持
Magic_锋
粉丝 0
博文 54
码字总数 32238
作品 0
东城
程序员
私信 提问
Android Studio工程项目打包成SDK(jar或aar格式)

Android工程项目打包成SDK 在app的gradle下进行设置: (1)将apply plugin: ‘com.android.application’ 改为apply plugin: ‘com.android.library’; (2)注释或删掉applicationId "co......

几忆年少红尘客
01/15
0
0
android中aar文件

一、目录结构 二、应用场景 aar文件是对android library项目的打包,类似于eclipse将android library项目导出的jar文件;如果多个项目同时依赖同一个android library,我们可以把android lib...

席道坤
2016/11/25
26
0
android studio打包aar心得

在比较大的 Android 项目的开发中,我们经常会遇到工程、jar 包等等之间相互引用的方式。一般我们通过在 gradle 文件中配置依赖来解决,比如: Gradle 的一些基本依赖配置方式如下: compil...

songgx
2016/03/16
67
0
AS打包aar文件的方法及使用总结

一.编写aar架包的方式 在app的build.gradle中配置 apply plugin: 'com.android.library' 删除 applicationId "com.***" 二.关于打包 打包aar架包的方法 ./gradlew assemble 会在文件build/o......

海阔天空玩世不恭
2015/12/21
4.7K
0
Android中常见的第三方库(so、jar、aar)区别及打包

Android中常见的第三方库包括:.so、.jar、*.aar,一般来说.so是C或C++语言的内容打包成的库,由于本项目是java语言,所以此处不探究so。 一、jar 1、说明 只包含了class文件与清单文件 ,不...

ZhangLG
03/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java单例模式学习记录

在项目开发中经常能遇见的设计模式就是单例模式了,而实现的方式最常见的有两种:饿汉和饱汉(懒汉)。由于日常接触较多而研究的不够深入,导致面试的时候被询问到后有点没底,这里记录一下学习...

JerryLin123
昨天
3
0
VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
昨天
4
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
昨天
4
0
5.线程实现

用于线程实现的Python模块 Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 - _thread 模块 th...

Eappo_Geng
昨天
6
0
ServiceLoader

创建一个接口文件在resources资源目录下创建META-INF/services文件夹在services文件夹中创建文件,以接口全名命名创建接口实现类 内容me.zzp.ar.d.PostgreSQLDialectme.zzp.ar.d.Hype...

Cobbage
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部