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即可,变成下图所示就是导入成功 。