Android Studio 生成自定义jar包的步骤详解
作者:紫依卓兰 发布时间:2023-01-31 05:02:41
想要将一个项目导出为jar包,供其它项目使用,在eclipse中可以直接导出该项目为jar包,而 在AS中可以通过修改gradle才处理。
接下来就介绍下具体的步骤:
1、新建一个项目,项目名随意,eg:MakeJarApplication,在项目中新建一个module类型为android-library ,命名为testLibrary。如图:
项目结构图
2、让app依赖这个库,在app下的build.gradle文件中添加compile project(':testlibrary')
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
testCompile 'junit:junit:4.12'
compile project(':testlibrary')
}
3、在testlibrary中创建一个TestShow类让外部的app能调用。并在app中调用
(1)TestShow .java
public class TestShow {
public void show(Context context, String msg, TextView textView) {
textView.setText(msg);
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
public void test() {
System.out.println("测试信息,test()方法");
}
}
(2)、MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show_tv = ((TextView) findViewById(R.id.show_tv));
((Button) findViewById(R.id.btn)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new TestShow().show(MainActivity.this, "调用jar包中的show方法", show_tv);
}
});
}
4、testlibrary的build.gradle中配置能生成jar文件:
def SDK_BASENAME = "TestSdk";
def SDK_VERSION = "_V1.0";
def sdkDestinationPath = "build";
def zipFile = file('build/intermediates/bundles/default/classes.jar')
task deleteBuild(type: Delete) {
delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar"
}
task makeJar(type: Jar) {
from zipTree(zipFile)
from fileTree(dir: 'src/main',includes: ['assets/**'])//将assets目录打入jar包
baseName = SDK_BASENAME + SDK_VERSION
destinationDir = file(sdkDestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
其中SDK_BASENAME = "TestSdk"; SDK_VERSION = "_V1.0";
是定义生成jar的名字为TestSdk_V1.0.jar。
5、在右侧的Gradle目录中有个“other”,展开找到“makejar”,然后双击“makejar”,就可以生成jar文件了,生成结果如下:
步骤结果导图
现在就可以复制TestSdk.jar到一个新的module中的libs目录下,然后就可以调用 new TestShow().show(context, "", show_tv);方法了。
6、在项目中调用结果:
总结
以上所述是小编给大家介绍的Android Studio 生成自定义jar包的步骤详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
来源:https://www.jianshu.com/p/c6fabaca33e0


猜你喜欢
- 一.内容抽象类当编写一个类时,常常会为该类定义一些方法,这些方法用于描述这个类的行为。但在某些情况下只需要定义出一些方法,而不需要具体的去实
- 本文实例讲述了C#获取U盘序列号的方法。分享给大家供大家参考。具体如下:using System.Management;private Li
- 一、项目需求二、项目思路1、菜单制作2、中奖号码生成 getNumber (随机数 Math.random)3、购买号码和中奖号码比对 生成
- 一、日志工具功能封装Debug类,需要实现功能:1.控制所有日志是否打印;2.除了Log,Warning,Error外,给更多日志种类(不同
- 一、概述在软件开发中,有些对象由于创建成本高、访问时需要与其它进程交互等原因,直接访问会造成系统速度慢、复杂度增大等问题。这时可以使用代理模
- using System.Drawing;using System.Drawing.Drawing2D;using System.Drawi
- 有些人可能对线程池比较陌生,并且更不熟悉线程池的工作原理。所以他们在使用线程的时候,多数情况下都是new Thread来实现多线程。但是,往
- 前言在SpringBoot中,对于JavaBean的属性一般都绑定在配置文件中,比如application.properties/appli
- 简单看一下描述,例子最重要。1、getPath():返回定义时的路径,(就是你写什么路径,他就返回什么路径)2、getAbsolutePat
- 本文实例讲述了C#实现带阴历显示的日期代码,分享给大家供大家参考。具体方法如下:这是一个用于酒店预定功能的带日期控件,类似去哪网酒店预定,由
- 用户User的注册类型有Super和Common两种public eumn RegistrationType{ &nb
- @MapperScan包扫描的坑在使用通用mapper执行查询时,由于不太注意顺手就导了spring的包:import org.mybati
- WebServiceHelper代码:using Microsoft.CSharp;using System;using System.Co
- 有时候我们需要实现这样的场景,类似进入开发者模式,即多次点击后执行操作。首先我们先看一个方法:System提供的一个静态方法arraycop
- 何为高阶函数 大家可能对这个名词并不熟悉,但是这个名词所表达的事物却是我们经常使用到的。只要我们的函
- 1. String对象不可改变的特性下图显示了如下代码运行的过程:String s = "abcd"; s = s.co
- 以下实例演示了如何使用 retainAll () 方法来计算两个数组的交集:Main.java 文件:import java.util.Ar
- 题目给定count=0;让5个线程并发累加到1000;思路创建一个类MyRunnable,实现Runnable(继承Thread类也可)定义
- Invoke Phing targets这个插件主要是读取xml形式包括自动化测试打包部署的配置文件,然后根据流程走下来。用ph
- 之前看过一句话,说的特别好。有人问阅读源码有什么用?学习别人实现某个功能的设计思路,提高自己的编程水平。是的,大家都实现一个功能,不同的人有