当我输入:
C:UsersOra OraDesktopDevReactNativeAbb to APk>>java -jar bundletool-all-1.4.0.jar //..rest of args
我得到这个错误:
'-jar'不能被识别为内部或外部命令,可操作程序或批处理文件。但是当我输入的时候当我输入:
C:UsersOra OraDesktopDevReactNativeAbb to APk>>$ java -jar bundletool-all-1.4.0.jar //..rest of args
我猜它工作,但我得到这个错误:
[BT:1.4.0] Error: nulljava.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:UsersOra OraDesktopDevReactNativeAbb to APkapp-release.aab" --output="C:UsersOra OraDesktopDevReactNativeAbb to APkapks.apks" --ks="C:UsersOra OraDesktopDevReactNativeDistributionAppandroidappmy-upload-key.keystore" --ks-key-alias=my-key-alias
查看源代码(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:'(如果密码是文件的第一行,例如:的文件:/tmp/myPassword.txt")。如果未设置此标志,则keystore密码将会受到审判。如果失败,将在提示。