【问题标题】:Signing an APK results in AssertionError at com.android.sdklib.BuildToolInfo.getPath(BuildToolInfo.java:244)在 com.android.sdklib.BuildToolInfo.getPath(BuildToolInfo.java:244) 签署 APK 会导致 AssertionError
【发布时间】:2014-10-10 06:14:58
【问题描述】:

我正在尝试使用 Android Studio 生成签名的 APK,但出现此错误。

我确定我的密码等都是正确的,因为我尝试了使用任意字符串的相同过程,但它们失败并出现预期错误(密码错误)

Google 并没有证明对这个错误有用,有人知道发生了什么吗?

我使用的是 0.8.6

    null
    java.lang.AssertionError
        at com.android.sdklib.BuildToolInfo.getPath(BuildToolInfo.java:244)
        at org.jetbrains.android.exportSignedPackage.ExportSignedPackageWizard.createAndAlignApk(ExportSignedPackageWizard.java:380)
        at org.jetbrains.android.exportSignedPackage.ExportSignedPackageWizard.access$200(ExportSignedPackageWizard.java:81)
        at org.jetbrains.android.exportSignedPackage.ExportSignedPackageWizard$1$1.run(ExportSignedPackageWizard.java:157)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:471)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
        at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:380)
        at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:419)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
        at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:149)

【问题讨论】:

  • 将您的 AS 更新到 0.8.12 并重试...
  • 我用的是windows,0.8.6是android网站上第一个提供的。
  • 他们今天发布了 0.8.12,所以值得尝试更新 :)

标签: android android-studio apk signing


【解决方案1】:

(简短介绍) 嘿,我在 IntelliJ IDEA 13.1.5 上遇到了同样的问题,完全相同的堆栈跟踪。我记得,它适用于 13.1.4,但这不在我的机器上。所以我尝试了13.1.1。不过,这个版本告诉我它没有找到zipalign 工具。这为我指明了正确的方向。

解决方案

我在我的 Android SDK 管理器中更新了“所有内容”(通过工具 -> Android -> SDK 管理器)。所以,目前我有

Android SDK Tools Rev. 23.0.4
Android SDK Platform-tools Rev. 20
Android SDK Build-tools Rev. 20
Android API 16, 19 and 20
Android Support Library Rev. 20
Android Play Billing Library Rev. 5
Android USB Driver Rev. 11

不过,我想一个 Android API 就足够了。 现在我可以再次构建一个签名的 APK。

【讨论】:

  • 在我的例子中,将构建工具更新到 Rev 20 解决了这个问题。
  • 在我的情况下安装构建工具 rev。 20 并停止并重新启动 IntelliJ IDEA 13.1.5 解决了该问题。
  • 确保从 SDK 管理器中删除所有旧的 Android SDK 构建工具。我有版本 18。删除后它甚至没有出现在列表中...
【解决方案2】:

该调用堆栈与它试图找到 zipalign 工具一致,该工具在 SDK 23 中移动。我猜你正在使用 SDK 23 之后发布的 Android Studio(就是这种情况如果您正在运行 0.8.6) 并尝试使用旧的 SDK。如果是这种情况,请更新您的 SDK,您应该没问题。

有一个错误报告记录了此处的行为,但请注意,该错误已作为 WorkingAsIntended 关闭——这取决于工具的更改,以及用户是否有任何依赖于 zipalign的脚本或其他行为> 在一个特定的地方,这也需要改变。

https://code.google.com/p/android/issues/detail?id=72611

【讨论】:

    【解决方案3】:

    手动将 Android SDK Build-tools 更新到最新版本已为我解决了这个问题。你不能只更新所有 - 我必须手动取消选择旧包并安装最新包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-12
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多