我已经与拥有 Android SDK 工具版本 21 的朋友核实过,apkbuilder那里有。我已将 Android SDK 工具更新到版本 22,但我再也找不到apkbuilder了。
所以看起来Andorid SDK工具已经apkbuilder用别的东西代替了?如何在没有 apkbuilder 的情况下制作 ant build.xml?还有其他方法可以为 Android 构建未签名的 apk 吗?
你可能想看看这个。
更新到 SDK 工具后进行修订。22 第一次,你可能需要重新启动 Android SDK Manager 并安装一个新项目: Android SDK Build-tools。
安装后,清理您的项目并重建。
在旧版本的AndroidSDK中,apkbuilder就像一个shell,实际上它调用:${sdk.dir}/tools/lib/sdklib.jar
所以,如果你深入 apkbuilder 的根目录,你会发现有两种调用它的方法:
从 ant 下有一个 ant-extend 库: ${sdk.dir}/tools/lib/ant-tasks.jar 所以,你可以像这样调用它:
<path id="android.antlibs">
<pathelement path="${sdk.dir}/tools/lib/ant-tasks.jar" />
</path>
<!-- Custom tasks -->
<taskdef resource="anttasks.properties" classpathref="android.antlibs" />
<apkbuilder
outfolder="${out.absolute.dir}"
resourcefile="${resource.package.file.name}"
apkfilepath="${out.packaged.file}"
debugpackaging="${build.is.packaging.debug}"
debugsigning="${build.is.signing.debug}"
verbose="${verbose}"
hascode="${manifest.hasCode}"
previousBuildType="${build.last.is.packaging.debug}/${build.last.is.signing.debug}"
buildType="${build.is.packaging.debug}/${build.is.signing.debug}">
<dex path="${intermediate.dex.file}"/>
<sourcefolder path="${source.absolute.dir}"/>
<jarfile refid="project.all.jars.path" />
<nativefolder path="${native.libs.absolute.dir}" />
<nativefolder refid="project.library.native.folder.path" />
<extra-jars/>
</apkbuilder>
用于脚本或其他开发您可以使用 ${sdk.dir}/tools/lib/sdklib.jar,其中包含 apkbuilder。查看以前版本中的 apkbuild.bat,在文件末尾:
set jarfile=sdklib.jar
set frameworkdir=
if exist %frameworkdir%%jarfile% goto JarFileOk
set frameworkdir=lib\
if exist %frameworkdir%%jarfile% goto JarFileOk
set frameworkdir=..\framework\
:JarFileOk
set jarpath=%frameworkdir%%jarfile%
call %java_exe% -classpath %jarpath% com.android.sdklib.build.ApkBuilderMain %*
您可以将 apkbuilder.bat 复制到您的 path_to_sdk_home/tools/,然后继续构建。我在这里找到了一份副本,并且有效。
rev.22 状态的 Android SDK 注释:
通过添加新的构建工具 SDK 组件来更改 SDK 的结构,该组件基于现有的平台工具组件。此更改将构建工具版本与 IDE 版本分离,允许在不需要 IDE 更新的情况下更新工具。
临时选项之一是将您的 SDK 工具回滚到存在 apkbuilder 的 rev.21。您可以通过备份工具文件夹(例如,将其重命名为 tools_22)并从 rev.21 下载以前的工具:dl-ssl.google.com/android/repository/tools_r20-windows.zip,将其解压缩到您的 SDK 和它会像以前一样工作。
我找到了一种方法,但我不太确定。我在 tools 目录中看到了一个 ant 目录,发现一个 build.xml 包含构建 apk 的新方法。我还在 tools/lib 目录中看到了 ant_task.jar。当我解压缩 jar 时,我找到了一些类,如 Apk ApkBuilderTask.class CheckEnvTask.class 等等......所以我认为改变方式以使用 ant 构建 apk任务,我将尝试使用模板来构建 apk,如果它有效,我将在此处发布解决方案。谢谢!