如何在命令行中创建apk文件?

6
我曾使用Eclipse IDE来构建APK文件。现在我想在Linux命令行中创建APK文件。但是当我输入“ant debug”时,它会出现以下错误:
Unable to obtain resource from anttasks.jar
  java.util.zip.ZipException : error in opening zip file

Problem : failed to create task or type checkenv 
Cause : The name is undefined 
Action : Check the spelling
Action : Check that any custom tasks/types have been declared
Action : Check that any <presetdef>/<macrodef> declarations have taken place

我有ant 1.9.2版本和android 17版本。我有build.xml文件。
编辑:我将我的ant版本更改为1.8.0,但无论我做什么,仍然会出现“无法创建任务或类型checkenv”错误。

Ant版本1.8.0正在与我一起工作。 - Biraj Zalavadia
你能检查一下 anttasks.jar 是否可用并且可以被访问吗?如果不能,你可以下载它。 - Pavan K
如何下载anttasks.jar文件? - SSS
1
anttasks.jar 是 Android SDK 的一部分,应该位于路径 $SDK/tools/lib/anttasks.jar。看起来您的文件可能已损坏。请尝试运行以下命令:jar tf $SDK/tools/lib/anttasks.jar(其中 $SDK 是您的 Android SDK 路径)。 - janos
当执行命令 jar tf $SDK/tools/lib/anttasks.jar 时,它会报告 java.util.zip.ZipException: 在打开 zip 文件时出错,位于 java.util.zip.ZipException.open(本机方法)。 - SSS
尝试解压 anttasks.jar。如果成功,请尝试再次压缩解压后的文件夹内容并替换 jar 文件(虽然要备份)。 - Binu Pandian
4个回答

1

我知道这已经过去几年了,但请注意,仅提供链接的答案是强烈不鼓励的 - JDB

1
请确保在根目录下(即与您的build.xml文件相同的目录)有一个名为local.properties的文件。

请确保此文件包含以下行:

sdk.dir=c:\\tools\\android-sdk

(当然,您需要根据您的实际sdk位置调整路径)
请仔细检查路径是否正确。
重新运行ant debug 注意:文件local.properties是本地文件(通常不在版本控制下!)

我有local.properties文件,并且其中sdk.dir路径是正确的。我已经检查过了,那不是问题所在。 - SSS
你能检查一下你的 SDK 安装是否没有损坏吗?特别地,请检查 android-sdk/tools/lib/ant-tasks.jar 是否存在且可执行。 - ben75
我有anttasks.jar文件。但是你能告诉我如何检查它是否可执行吗? - SSS
android-sdk/tools/lib/ 中执行 ls -l 命令:它会给你关于所有者/组等的信息... ant 进程的所有者(即您)必须有读取权限(不确定是否需要可执行权限,但在我的安装 -windows- 上是可执行的)。 - ben75
@ben75 但是ant-tasks.jar在E:\JEGADEES\Android\adt-bundle-windows-x86_64-20131030\sdk\tools\lib路径下找到了。 - Sagotharan
显示剩余4条评论

0

使用此示例 您需要将sdk.dir传递给ant,即ant -Dsdk.dir=<path to Android SDK>

您还需要指定七个或更多Android构建目标之一,因为默认构建目标是“help”。

如果只运行ant -Dsdk.dir=<path to Android SDK>,则会获得一些帮助输出,如下所示:

help:
 [echo] Android Ant Build. Available targets:
 [echo]    help:      Displays this help.
 [echo]    clean:     Removes output files created by other targets.
 [echo]    compile:   Compiles project's .java files into .class files.
 [echo]    debug:     Builds the application and signs it with a debug key.
 [echo]    release:   Builds the application. The generated apk file must be

 [echo]               signed before it is published.
 [echo]    install:   Installs/reinstalls the debug package onto a running
 [echo]               emulator or device.
 [echo]               If the application was previously installed, the
 [echo]               signatures must match.
 [echo]    uninstall: Uninstalls the application from a running emulator or
 [echo]               device.

构建成功 总共用时:7秒 要构建APK文件,您需要指定是调试版本还是发布版本。

ant -Dsdk.dir=<path to Android SDK> debug

这将帮助您创建一个apk文件


如果我写了 ant -Dsdk.dir=<path to android SDK> debug,我仍然会得到相同的错误。 - SSS
@SSS 为什么构建失败? - Kai
这就是我在问的。为什么它会出现错误,无法创建任务或类型checkenv并失败? - SSS

0

我正在进行以下操作:

1)sdk/tools/android update project -t 3 -p

2)ant clean release

3)jarsigner -keystore -storepass -keypass

4)sdk/tools/zipalign -v 4 /bin/.apk


但对我来说,它显示为:无法打开zip文件anttasks.jar。 - SSS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接