代码之家  ›  专栏  ›  技术社区  ›  TheHunter Shergill Stan R.

java.io.io异常:密钥库格式VS Xamarin无效

  •  0
  • TheHunter Shergill Stan R.  · 技术社区  · 4 年前

    我正试图用keystore.jks文件手动签署我的APK文件,以便在Google Play Store上发布我的应用程序。 以下是我正在执行的命令。

    zipalign -v -p 4 com.VolMobileApp.Android.apk com.VolMobileAppAligned.Android.apk
    
    apksigner sign --ks h2vkeystore.jks --out com.VolMobileAppRelease.Android.apk com.VolMobileAppAligned.Android.apk
    

    这就是问题所在。我试图寻找解决方案,但没有成功。

    当第二个命令询问时

    Keystore password for signer #1:
    

    填写密码后,它会返回下面给出的错误。早些时候没有出现错误。

    Failed to load signer "signer #1"
    java.io.IOException: Invalid keystore format
            at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:666)
            at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:57)
            at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
            at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:71)
            at java.security.KeyStore.load(KeyStore.java:1445)
            at com.android.apksigner.SignerParams.loadKeyStoreFromFile(SignerParams.java:353)
            at com.android.apksigner.SignerParams.loadPrivateKeyAndCertsFromKeyStore(SignerParams.java:239)
            at com.android.apksigner.SignerParams.loadPrivateKeyAndCerts(SignerParams.java:181)
            at com.android.apksigner.ApkSignerTool.getSignerConfig(ApkSignerTool.java:368)
            at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:291)
            at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:84)
    

    我无法检测出我做错了什么,但我注意到的不同之处在于存档的文件夹结构。

    enter image description here

    0 回复  |  直到 4 年前
        1
  •  0
  •   Eleazar Saavedra    3 年前

    就我而言,通过签署解决了问题。APK whit将签名到密钥库中的值配置为在Release模式下创建APK文件。

    我在中以微软为例 here

    enter image description here

    在这里我给出了相同的值

    enter image description here

    这样就解决了我的问题

    “java.exe”已退出,返回代码2

    但真正的信息问题在于输出:

    未能加载签名者“signer#1”java.io.io异常:密钥库格式无效

    目前我还没有找到这个问题的真正解决方案,但是,这是可行的。