android studio怎么打包项目(android打包规范aar)

Android Studio 如何打JAR包

在eclipse中我们知道如何将一个项目导出为jar包,供其它项目使用。

在AS中可以通过修改gradle才处理。

我们新建一个项目MakeJar,在项目中新建一个modle-类型为android-library

app为我们的主工程,librarydemo是我们要将其生成jar包的model.

在library demo中的build.gradle中与android结构同级加入如下代码:

步骤1-依赖

主工程App的build中要加入librarydemo 这个依赖model:

dependencies {
 compile fileTree(dir: 'libs', include: ['*.jar'])
 compile 'com.android.support:appcompat-v7:22.2.0'
 compile project(':librarydemo')
}123451234512345

   

步骤2- 载library种编写task

当你编译完工程后其实library的所有Java文件已经生成了包含class 的classes.jar包,如下图所示:

这个为了方便给出一个task 将改classes.jar 导出到library的build/libs/下,并修改名字为mysdk.jar ( 名字随意)。

//Copy类型
task makeJar(type: Copy) { //删除存在的
 delete 'build/libs/mysdk.jar'
 //设置拷贝的文件
 from('build/intermediates/bundles/release/') //打进jar包后的文件目录
 into('build/libs/') //将classes.jar放入build/libs/目录下
 //include ,exclude参数来设置过滤
 //(我们只关心classes.jar这个文件)
 include('classes.jar') //重命名
 rename ('classes.jar', 'mysdk.jar')
}
makeJar.dependsOn(build)//在终端执行生成JAR包// gradlew makeJar123456789101112131415161718191234567891011121314151617181912345678910111213141516171819

   

在android studio 提供的Terminal中(目录默认伟当前工程的)键入 ./gradlew makeJar 回车看到如下所示就OK了:

生成的jar包在你的library那个的build下的libs下,然后就可以使用了。

声明:打出来的jar只有源代码的.class 文件,不包含资源文件

看到那么多人踩的,那么多人遇到问题,在这里说明下并解决

常见问题

有人问:

怎么把资源(图片,布局,string等)打进jar包呢?

答案是: 既然不包含那我们就把jar包中用到的资源放到你使用该jar的工程里面,然后通过反射即可。

这里给出反射类:

public class MResource { public static int getIdByName(Context context, String className, String resName) {
 String packageName = context.getPackageName(); int id = 0; try {
 Class r = Class.forName(packageName   ".R");
 Class[] classes = r.getClasses();
 Class desireClass = null; for (Class cls : classes) { if (cls.getName().split("\\$")[1].equals(className)) {
 desireClass = cls; break;
 }
 } if (desireClass != null) {
 id = desireClass.getField(resName).getInt(desireClass);
 }
 } catch (Exception e) {
 e.printStackTrace();
 } return id;
 }
}123456789101112131415161718192021222324123456789101112131415161718192021222324123456789101112131415161718192021222324

   

个人觉得还是用as为我们提供的aar包比较好,编译完就生成了aar了,而且也不用担心资源问题,万一你漏了一个呢。

生成的aar在你的library的/build/outputs/aar/

这两天有点忙,更新的不太及时了,哈哈~

(0)

相关推荐

  • Android studio怎么新建项目并更新?

    Android studio是一款开发程序,能够很轻松的制作android程序,但是由于没有中文版,因此在初学使用阶段,英语是不得不越过的障碍:作为初学者,我们该如何新建项目以及更新Android s ...

  • android studio导入eclipse项目中文乱码问题怎么解决

    Android studio打开eclipse项目中文全部是乱码怎么办?Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT.An ...

  • 怎么删除android studio创建的项目

    android studio是谷歌推出的一个Android集成开发工具,有些用户想知道怎么删除创建的项目,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步根据下图所示,打开电脑中的 ...

  • Android Studio 如何修改项目包名

    本文介绍Android Studio 如何修改项目包名 操作方法 01 更改显示项目结构方式,点击项目导航上的锯齿图标打开菜单,去掉Flaten Packages和Hiden Empty Midlle ...

  • Android studio怎么为项目添加模块依赖?

    Android studio是谷歌开发一个Android开发代码工具,在编辑代码的过程所有创建项目的程序中,会依赖其他项目包,和其它的项目的模块,通过相关依赖之后,而无需在写入代码.方便的进行快速开发 ...

  • Android Studio导入Eclipse项目失败该怎么办?

    随着Google 对新Android编辑器Android Studio(以下简称AS)的版本不断更新,越来越多的人开始由熟悉的编辑器Eclipse转向AS,而Eclipse开发团队也坦言将放弃对Ecl ...

  • Android studio多个项目之间怎么实现快速切换?

    在对Android studio中进行对项目中的开发Android上的代码,那么一个当中进行对项目上的开发,那么在就会打开多个项目对项目中进行对其的开发,当当对一个项目上的开发,根据自己的要求的话,那 ...

  • android studio打开adt项目的步骤

    相信很多做安卓开发的朋友之前都保留了好多用eclipse下adt开发的项目,这些项目要在android studio中打开需要通过new的方式导入,如果直接打开就会出现很多的问题. 操作方法 01 首 ...

  • Android studio导入开源项目

    前几天从github上下载一个开源项目,发现他并不是以前Eclipse那种的目录结构 而是最近在用到的android studio的文件目录.从上图中我们可以看到多次出现了gradle这个单词.And ...

  • Android Studio第一个项目创建报错解决办法

    操作方法 01 官网下载的Android Studio(1.3.2)以及JDK,在线更新SDK,并创建第一个项目全部按默认进行空白的项目,报错:(无法解析或是找不到) 指向的原代码是这两个地方: an ...