Mac中配置gradle环境及使用android studio打包jar包与arr包的方法
作者:暮云清风 发布时间:2022-12-08 00:07:18
前言
在Mac中用android studio 导出jar包最重要的是需要配置gradle ,它包的导出也是通过gradle命令进行的。
所以,如果想成功打包,要先配置好gradle环境,这样你才可以在android studio中的terminal中直接使用gradle命令了。下面话不多说了,来一起看看详细的介绍吧。
gradle 环境变量的配置
1.这个配置和jdk的环境变量配置类似
启动终端,进入当前用户目录。
2.创建 .bash_profile 文件,如果已经有了就直接打开
3.用命令打开文件编辑 open -e .bash_profile
GRADLE_HOME=/Users/liuhai/.gradle/wrapper/dists/gradle-4.1-all/bzyivzo6n839fup2jbap0tjew/gradle-4.1 export GRADLE_HOME export PATH=$PATH:$GRADLE_HOME/bin
这里面要注意的是gradle_home 的路径可以自己定义,你可以网上下载最新的gradle,也可以用android studio自带的
如果你用自带的就是下面这样的,这里要注意android studio文件名中间有个空格,所以这里要用转义字符进行转义:
export GRADLE_HOME=/Applications/Android\ Studio.app/Contents/gradle/gradle-2.14.1 export PATH=$PATH:$GRADLE_HOME/bin
4.关闭保存.bash_profile文件
5.命令行输入 source .bash_profile
更新刚刚配置的环境变量
6.输入 gradle -version 验证配置是否正确,如果正确显示版本号就说明你配置正确。同时,在你的android studio terminal中输入这个命令应该也能显示正确的版本号,如果不行,请重启android studio ,还不行就重启电脑,再不行就检查你的配置,还不行就私信我,我教你。
如果你上面的成功配置了,那我们就开始打包了。
1.在你需要打包的module的builde.gradle文件中 将 apply plugin: 'com.android.application'
中的 application 改成 library ,并注释掉 applicationId 这一行
2.在build.gradle文件中添加下面类容(内容和android{……}模块平级,不要加到android 模块中去了):
task clearJar(type: Delete) {
delete 'libs/sdk.jar' //sdk是你自己jar包的名字,随便命名
}
task makeJar(type: org.gradle.api.tasks.bundling.Jar) {
baseName 'sdk' //指定生成的jar名
//从哪里打包class文件,这个是你module中生成的class文件,如果没有classes文件夹,不妨先运行下你的应用
from('build/intermediates/classes/debug/com/****/*****')
//打包到jar后的目录结构,这里建议直接用包名
into('com/*****/******')
exclude('test/', 'BuildConfig.class', 'R.class')//去掉不需要打包的目录和文件
exclude { it.name.startsWith('R'); }//去掉R开头的文件
}
makeJar.dependsOn(clearJar, build)
然后在android {……}模块中添加下面内容:
lintOptions {
abortOnError false
}
配置好后就直接在你的android studio 到terminal中输入 gradlew makeJar 命令,成功后你就可以在你的build/libs文件夹下看到你要的jar包了。同样到项目模块的buidl/outputs/aar文件夹下看到了我们的.aar文件
来源:https://www.jianshu.com/p/84e5460983c7
猜你喜欢
- 是不是很讨厌mybatis Generator帮我们生成代码的时候在Mapper和mapper.xml文件中生成的一大堆注解?今天在看MyB
- 前言代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类、映射文件和接口。看到很多小伙伴在为数据库生成实体类发愁,现分享给
- 本文实例为大家分享了Android实现聊天界面的具体代码,供大家参考,具体内容如下文件目录在app下的build.gradle中添加依赖库(
- 问题描述涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请
- 在日常生活中,我们使用maven下载需要的jar包,但是很多的时候由于中央仓库没有,所以我们没有办法下载到需要的jar包,手动去下载上,然后
- Java语言的垃圾回收1.垃圾回收机制的基本概念问:1.什么是Java垃圾回收?答:在Java语言的生命周期中,Java运行环境提供了一个系
- android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 Translat
- 本文实例为大家分享了Android实现五子棋小游戏的具体代码,供大家参考,具体内容如下配图:代码:package com.example.f
- Feign远程调用Multipartfile参数今天在写业务代码的时候遇到的问题, 前端请求A服务,能正确把参数给到A服务<参数里面包
- 前言早期在学习泛型的协变与逆变时,网上的文章讲解、例子算是能看懂,但关于逆变的具体应用场景这方面的知识,我并没有深刻的认识。本文将在具体的场
- 1.基数排序(radixsort)属于“分配式排序”(distributionsort),又称“桶子法”(bucketsort)或binso
- 图像的旋转需要调用 Graphics2D 类的rota
- 个人认为单例模式是设计模式中最简单也是最常用的一种,是对有限资源合理利用的一种方式。这个模式看似简单,但是其中蕴含了关于并发、类加载、序列化
- Zuul 简介Zuul 的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如 /api/admin 转发到到 Admin 服务,/a
- 在日常开发的过程中应该不可避免的会发生 crash,无论你的程序写的多么完美,都不可能完全避免 crash 的发生,可能是由于 Androi
- 使用Task类解决线程的等待问题在任何的编程语言中,面对耗时任务时,我们都会有这样的需求:让任务执行一定时间,主任务进行等待,如果到时仍然完
- 本文实例为大家分享了Android实战闹钟项目的具体代码,供大家参考,具体内容如下一、闹钟功能的介绍以及界面的展示该闹钟是根据我们手机闹钟设
- 题目描述原题链接 :88. 合并两个有序数组给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m
- 废话不多说了,直接给大家贴java代码了。 import java.io.IOException;import sun.net.Telnet
- 图像切换器(ImageSwitcher),用于实现类似于Windows操作系统的“Windows照片查看器”中的上一张、下一张切换图片的功能