task makeJar(type: Copy) {
def jarName = "jarName"
//删除存在的
delete 'build/libs/' + jarName + ".jar"
//设置拷贝的文件
from("build/intermediates/aar_main_jar/commonDebug")
//打进 jar 包后的文件目录,将 classes.jar 放入 build/libs/目录下
into('build/libs/')
//要打包的 jar 文件
include('classes.jar')
//重命名
rename('classes.jar', jarName + ".jar")
} makeJar.dependsOn(build)
这个是导出的代码
1
MozzieW 334 天前
jar 是 Java 的格式,Android 的依赖格式是 aar
|
![]() |
2
AoEiuV020CN 334 天前
好奇你要做什么,最近几天问的安卓问题都奇奇怪怪的,
|
3
9527H OP @AoEiuV020CN 把一个 android 项目打成 jar 包,发送到手机上,然后用 adb 命令执行这个 jar 内的代码
|
4
maokabc 334 天前 via Android
jar 为什么要这个?需要把原本包含.class 文件的 jar 用 dx 或者 d8 转换为包含 classes.dex 的 jar ,然后 dalvikvm 运行就行。
|
5
9527H OP @maokabc jar 包的代码里面需要用到 Application ?但是我获取到 Application 都是为空,刚开始我以为是 jar 包没有 AndroidManifest.xml 的缘故。但现在看来不是这样的。 你有办法可以拿到 Application 吗
|
![]() |
9
AoEiuV020CN 334 天前
@9527H #3 这只是手段,我想知道的是目的,
比如运行这个 jar 想要实现什么效果,想要解决什么问题, |
10
zpxshl 333 天前 via Android
要么系统学习安卓。要么详细描述你的需求。
按你目前的描述与设想来看,路完全走不通的 |
![]() |
11
wvitas 333 天前
jar 无法包含资源文件的,想包含资源文件得 aar
|
![]() |
12
shawndev 333 天前
典型的 X-Y Problem ,要打包也是 dex 或者 aar ,系统学了 android 再来提问吧,OP 的几个近期提问都没头没脑的。
|
13
XXWHCA 333 天前
android 运行 jar 包只能直接运行非系统组件的代码,不然就需要依附一个宿主 app ,因为系统组件比如 Application ,Context 这些都需要注册到 AMS 的,不然是走不通的,和有没有清单文件没有关系
|