我已经与拥有 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,如果它有效,我将在此处发布解决方案。谢谢!