【问题标题】:cant execute buildtool jar file to extract apks from abb file无法执行构建工具 jar 文件以从 aab 文件中提取 apk
【发布时间】:2021-05-15 14:26:53
【问题描述】:

当我输入这个时:

C:\Users\Ora Ora\Desktop\Dev\React\Native\Abb to APk>>java -jar bundletool-all-1.4.0.jar //..rest of args

我得到这个错误:

'-jar' 未被识别为内部或外部命令, 可运行的程序或批处理文件。 但是当我输入 当我输入这个:

C:\Users\Ora Ora\Desktop\Dev\React\Native\Abb to APk>>$ java -jar bundletool-all-1.4.0.jar //..rest of args

我猜它可以工作,但我收到了这个错误:

[BT:1.4.0] 错误:空 java.lang.NullPointerException 在 com.android.tools.build.bundletool.model.SignerConfig.lambda$extractFromKeystore$0(SignerConfig.java:109) 在 java.base/java.util.Optional.orElseGet(Optional.java:362) 在 com.android.tools.build.bundletool.model.SignerConfig.extractFromKeystore(SignerConfig.java:106) 在 com.android.tools.build.bundletool.commands.BuildApksCommand.populateSigningConfigurationFromFlags(BuildApksCommand.java:1059) 在 com.android.tools.build.bundletool.commands.BuildApksCommand.fromFlags(BuildApksCommand.java:593) 在 com.android.tools.build.bundletool.commands.BuildApksCommand.fromFlags(BuildApksCommand.java:559) 在 com.android.tools.build.bundletool.BundleToolMain.main(BundleToolMain.java:75) 在 com.android.tools.build.bundletool.BundleToolMain.main(BundleToolMain.java:47)

这是完整的命令:

java -jar bundletool-all-1.4.0.jar build-apks --bundle="C:\Users\Ora Ora\Desktop\Dev\React\Native\Abb to APk\app-release.aab" --output="C:\Users\Ora Ora\Desktop\Dev\React\Native\Abb to APk\apks.apks" --ks="C:\Users\Ora Ora\Desktop\Dev\React\Native\DistributionApp\android\app\my-upload-key.keystore" --ks-key-alias=my-key-alias

【问题讨论】:

    标签: java android react-native apk bundletool


    【解决方案1】:

    查看source code(bundletool 是开源的),看起来您正在运行的 Java 环境没有提供输入密码的控制台。

    我记得这是 Windows 平台上的一个问题,我不知道在命令行上输入密码的直接解决方法。

    但是,您可以通过不同方式提供密码,例如传递--ks-pass 标志。来自 bundletool 的帮助命令:

    --ks-pass:(可选)用于签署生成的密钥库的密码 APK。如果提供,则必须以“pass:”作为前缀(如果密码 以明文形式传递,例如'pass:qwerty') 或 'file:' (如果密码 是文件的第一行,例如'文件:/tmp/myPassword.txt')。如果这 未设置标志,将在提示时要求输入密码。

    如果密钥的密码与密钥库中的密码不同,--key-pass 也是如此。

    --key-pass:(可选)密钥库中用于签名的密钥的密码 生成的 APK。如果提供,必须以“pass:”作为前缀 (如果密码以明文形式传递,例如“pass:qwerty”)或“file:” (如果密码是文件的第一行,例如 'file: /tmp/myPassword.txt')。如果未设置此标志,则密钥库密码 将被尝试。如果失败,将在 提示。

    【讨论】:

      猜你喜欢
      • 2021-10-30
      • 2016-09-01
      • 2013-09-17
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2020-10-11
      • 2020-01-15
      相关资源
      最近更新 更多