新建一个空的项目后,新建一个Android Library Module,然后build.gradle大概是这样的:
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
}
然后打开这个文件, 在上面右键->Run 'build', Run控制台会大概输出这样
D:\MyDownloads\java\jdk1.8.0_40\bin\java -Dgradle.home=C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8 -Dtools.jar=D:\MyDownloads\java\jdk1.8.0_40\lib\tools.jar -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files\Android\Android Studio\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\groovy-all-2.4.4.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\ant-1.9.3.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\ant-launcher-1.9.3.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-base-services-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-base-services-groovy-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-cli-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-core-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-docs-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-launcher-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-messaging-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-model-core-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-model-groovy-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-native-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-open-api-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-resources-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-tooling-api-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-ui-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\gradle-wrapper-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-announce-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-antlr-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-build-comparison-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-build-init-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-code-quality-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-dependency-management-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-diagnostics-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-ear-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-ide-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-ide-native-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-ivy-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-jacoco-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-javascript-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-jetty-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-language-groovy-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-language-java-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-language-jvm-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-language-native-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-language-scala-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-maven-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-osgi-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-platform-base-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-platform-jvm-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-platform-native-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-platform-play-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-plugin-development-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-plugin-use-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-plugins-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-publish-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-reporting-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-resources-http-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-resources-s3-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-resources-sftp-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-scala-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-signing-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-sonar-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-test-kit-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-testing-native-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\gradle-tooling-api-builders-2.8.jar;C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8\lib\plugins\ivy-2.2.0.jar;C:\Program Files\Android\Android Studio\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.gradle.launcher.GradleMain --build-file E:\myApp\android-exercises\ANE\FirstANE\build.gradle
:FirstANE:help
Welcome to Gradle 2.8.
To run a build, run gradle <task> ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
To see more detail about a task, run gradle help --task <task>
BUILD SUCCESSFUL
Total time: 22.827 secs
Process finished with exit code 0
然后去build\intermediates\bundles目录看看, 并没有我们的release文件夹, 只有build\outputs\aar里的aar文件,
怎么办呢, 用gradle导出jar吧
task buildJar(type: Jar) {
extension = "jar"
archiveName = "FirstANE.jar"
def srcClassDir = [project.buildDir.absolutePath + "/intermediates/classes/debug"];
def resourceDir = [projectDir.absolutePath + "/src/main"];
from srcClassDir
include 'org/*/FirstANEContext.class'
include 'org/*/FirstANEExtension.class'
include 'org/*/SayHelloFunction.class'
from resourceDir
include 'res/values/*.xml'
}
然后我假设你已经配置好了gradle环境变量:
新建GRADLE_HOME=C:\Users\Administrator\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h\gradle-2.8
PATH加上%GRADLE_HOME%\bin
你的gradle目录可能有所不同, 请不要复制粘贴
然后用cmd进入你的Android Library Module, 运行gradle buildJar回车即可
最后你的 jar 包会生成到 Module/build/libs 目录之下.