Untiy 2017.2.0f3:cant build android apk错误:CommandInvokationFailure:无法签署APK包
我正在尝试为我的应用程序构建测试。当我构建应用程序我碰到下面的错误Untiy 2017.2.0f3:cant build android apk错误:CommandInvokationFailure:无法签署APK包
CommandInvokationFailure: Failed to sign APK package.
C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.2\apksigner.bat sign --ks "D:/Programming/UnityProjects/MobileProject-resortTycoon/user.keystore" --ks-pass stdin --ks-key-alias "test123" --key-pass stdin "D:\Programming\UnityProjects\MobileProject-resortTycoon\Temp/StagingArea/Package.apk"
stderr[
Error: keywords 'java|openjdk version' not found in 'picked up java_tool_options: -df'
Error: keywords 'java|openjdk version' not found in 'picked up java_tool_options: -df'
Failed to load signer "signer #1"
java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56)
at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)
at java.security.KeyStore.load(KeyStore.java:1445)
at com.android.apksigner.ApkSignerTool$SignerParams.loadKeyStoreFromFile(ApkSignerTool.java:829)
at com.android.apksigner.ApkSignerTool$SignerParams.loadPrivateKeyAndCertsFromKeyStore(ApkSignerTool.java:719)
at com.android.apksigner.ApkSignerTool$SignerParams.loadPrivateKeyAndCerts(ApkSignerTool.java:659)
at com.android.apksigner.ApkSignerTool$SignerParams.access$500(ApkSignerTool.java:611)
at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:266)
at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:89)
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
]
stdout[
Keystore password for signer #1:
]
exit code: 2
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.Command.RunWithStdin (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg, System.String[] input)
UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, System.String[] stdin)
UnityEditor.Android.PostProcessor.Tasks.BuildAPK.SignPackage (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.Tasks.BuildAPK.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
我已经尝试重新安装Android SDK和其更新到最新版本,下载不同的Android版本,使用新的gradle这个,而不是内部。没有工作。寻找解决方案2天后,我仍然不知道如何解决这个问题。有人能帮我吗?非常感谢!
我不知道为什么,但我能解决我的问题。当我安装Java JDK时,它安装了2个文件夹。 Unity自动选择一个名为“jdk-9”的文件夹。当我将其更改为“jdk1.8.0_131”时,我能够构建我的应用程序。
如果有任何知道为什么这个作品这样我会很高兴知道!
您的密钥库似乎存在问题,而不是sdk。我不知道你是否知道密钥库是什么,所以在这里你去:
一个密钥库是一个文件,就像你的应用程序的“密码”一样。例如,Google Play不会让您更新您的应用,除非您的应用使用相同的密钥存储库进行了更新。无论您做什么,在发布您的应用程序后都不要丢失密钥库。
如果您还没有喷气产生的为您的应用密钥库您可以生成一个团结:https://forum.unity.com/threads/android-signing.62137/
如果你已经拥有了它最有可能得到某种方式破坏一个密钥。如果您已经在某处发布了您的应用程序,我希望您有备份。如果不是只生成一个新的密钥库
感谢您的回复。我做了一个新的密钥存储。并填补了一切。我试图在此之后构建apk,但它仍然给了我错误。如果密钥库不在资产文件夹中,是否存在问题? –
没人?不能任何人帮助我? –