繁体   English   中英

如何使用 *class 文件生成 .jar 的 android 库?

[英]How to generate .jar of android library with *class files?

目前我的 gradle 任务看起来像:

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
...
}

task sourcesJar(type: Jar) {
        getArchiveClassifier().set('sources')
        from android.sourceSets.main.java.sourceFiles
    }

artifacts {
        archives sourcesJar
    }

但是结果 jar artifact 有*.java*.kt文件,但是如何生成带有*.class文件的 jar artifact?

在此处输入图片说明

根据您的屏幕截图,您正在打开xxx-sources.jar文件。 当然它里面只包含Java源文件。 这是您配置如下的正确结果:

task sourcesJar(type: Jar) {
    getArchiveClassifier().set('sources')
    from android.sourceSets.main.java.sourceFiles
}

您的类文件通常被分隔在另一个 jar 文件中。 您没有指定您执行的任务是什么。 所以让我们假设你运行默认的 Android 构建任务,它会生成aar文件,它应该包含你的模块类文件。 您可以解压sapi-1.6.aar进行检查。

您也可以参考此 文档

更新:

您没有说明为什么需要Jar文件而不是AAR文件,假设您想在其他项目中使用Jar文件,那么您需要使用其他gradle插件来构建(不能使用android gradle插件),它可以是javabase gradle 插件。 有人回答说,你可以在 aar 文件中找到 jar 文件,你可以检查这个

从命令行,您只需键入:

jar uf0 path_to_your_jar_file\yourJarFile.jar path_to_your_classes\*.class

当然,如果您不想添加该目录中的所有类,您可以使用类名而不是通配符 (*)。

jar --help

会给你更多的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM