MAC下Android Studio打jar包及其使用

1.一些配置
配置gradle文件
先确定当前的gradle是否存在,在终端输入下列命令:

$ gradle -version

如果出现下列情况,则需要配置一下gradle,否则,就是gradle已经配置好了,若出现其他情况请耐心往下看,下面会讲解:

-bash: gradle: command not found

配置:
先找到Android Studio内安装的gradle包的位置:
打开finder->打开应用程序->找到Android Studio->右键显示包内容->Contents->gradle->gradle-x.x
这里的x.x为当前的gradle的版本号。
打开终端 输入open ~/.bash_profile打开一个文件

$ open ~/.bash_profile

如果提示不存在,就先按下面的命令创建,然后再打开

$ touch .bash_profile

在打开的文件中输入路径(注:因为不能有空格,所以空格前要有\来转),输入格式如下:

export GRADLE_HOME=/Applications/Android\ Studio.app/Contents/gradle/gradle-4.1
export PATH=${PATH}:${GRADLE_HOME}/bin

重启终端,再次输入gradle -version判断当前gradle时就不会有错误提示不存在了。
配置Java

在输入gradle -version时,可能会出现下列错误,告诉你java没发现:

FAILURE: Build failed with an exception.

这个时候其实不用担心,因为其实Android Studio有自带的jdk,用自带的就行。
配置:
先找到Android Studio内安装的jdk的位置:
打开Android Studio->选择上方任务栏的File->选择Project Structure->选择SDK Location->复制jdk的路径,如下图所示:
在这里插入图片描述
打开终端 输入open ~/.bash_profile打开一个文件

$ open ~/.bash_profile

在打开的文件中输入路径,输入格式如下:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
export PATH=${PATH}:${JAVA_HOME}/bin

重启终端,再次输入gradle -version,会出现类型下面所展示的信息:

------------------------------------------------------------
Gradle 4.1
------------------------------------------------------------

Build time:   2017-08-07 14:38:48 UTC
Revision:     941559e020f6c357ebb08d5c67acdb858a3defc2

Groovy:       2.4.11
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_152-release (JetBrains s.r.o 25.152-b08)
OS:           Mac OS X 10.13.2 x86_64

输入java -version,会出现类型下面所展示的信息:

openjdk version "1.8.0_152-release"
OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08)
OpenJDK 64-Bit Server VM (build 25.152-b08, mixed mode)

此时,就配置完成了。配置完成后重启Android Studio。


关于Classees.jar 的位置
因为IDE环境问题 classes.jar生成的位置也不同否则构建工程时候会报错,这边小冷得批评下谷歌

* What went wrong
Cannot expand ZIP 'mylibrary\build\intermediates\bundles\release\classes.jar

Android Studio3.1.2之前的配置

def SDK_BASENAME = "myjar";
def SDK_VERSION = "_v1.0.0";
def sdkDestinationPath = "build/outputs/jar/";
def zipFile = file('build/intermediates/bundles/release/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目录下的所有文件

 baseName = SDK\_BASENAME + SDK\_VERSION
    destinationDir = file(sdkDestinationPath)
}
makeJar.dependsOn(deleteBuild, build)

Android Studio3.1.2之后的配置

def SDK_BASENAME = "myjar";
def SDK_VERSION = "_v1.0.0";
def sdkDestinationPath = "build/outputs/jar/";
def zipFile = file('build/intermediates/packaged-classes/release/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目录下的所有文件

 baseName = SDK\_BASENAME + SDK\_VERSION
    destinationDir = file(sdkDestinationPath)
}
makeJar.dependsOn(deleteBuild, build)

2.打jar包
不管是那种打包jar包都得变成内库,所以当一种方法讲解了。
一个项目中创建一个new module–>Android Library就是一个内库。
项目打jar包得让你的项目成内库:如何变成内库呢?

1).新建一个Android Studio项目
2).打开项目里的app下的build.gradle
3).将 apple plugin:'com.android.application’改为apply plugin: ‘com.android.library’
4).删除:applicationId,versionCode,versionName

//apply plugin: 'com.android.application'
apply plugin: 'com.android.library'
android {
    compileSdkVersion 28
    defaultConfig {
        //applicationId "com.example.zhangqianqian.jartest"
        minSdkVersion 15
        targetSdkVersion 28
        //versionCode 1
        //versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

5).在底部加上下列代码:

task makeJar(type: Copy) {
    //删除存在的
    delete 'build/libs/myjar.jar'
    //设置拷贝的文件
    from('build/intermediates/packaged-classes/debug/')
    //打进jar包后的文件目录
    into('build/libs/')
    //将classes.jar放入build/libs/目录下
    //include ,exclude参数来设置过滤
    //(我们只关心classes.jar这个文件)
    include('classes.jar')
    //重命名
    rename ('classes.jar', 'myjar.jar')
}

makeJar.dependsOn(build)

上面这行加入的代码代表将build/intermediates/bundles/debug/目录下生成的class.jar文件复制到build/libs/目录下面并且重命名为myjar.jar
在这里插入图片描述
6).最后,Android Studio的Terminal输入./gradlew makeJar即可:

./gradlew makeJar

在这里插入图片描述
在这里插入图片描述
3.导入jar包
将 jar 包拷贝到lib包,右键该jar包,选择add as library,弹出如下窗口:
在这里插入图片描述
点击ok即可,变成下图所示就是导入成功 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值