2017-10-13 4 views
0

Ich versuche, einen Test für meine App zu erstellen. Wenn ich die app bauen bekomme ich folgende FehlerUntiy 2017.2.0f3: kann nicht Android apk Fehler erstellen: CommandInvokationFailure: Fehler beim Signieren APK-Paket

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) 

ich bereits versucht, das Android SDK neu installieren und es auf die neueste Version aktualisieren, eine andere Android-Versionen herunterzuladen, die neue gradle anstelle der internen Verwendung. Nichts hat geklappt. Nach 2 Tagen der Suche nach einer Lösung weiß ich immer noch nicht, wie ich das beheben kann. Kann mir jemand helfen? Danke vielmals!

+0

Niemand ?! Kann mir niemand helfen? –

Antwort

0

Ich weiß nicht warum, aber ich konnte mein Problem beheben. Als ich Java JDK installierte, installierte es 2 Ordner. Unity hat automatisch einen Ordner namens "jdk-9" ausgewählt. Als ich es in "jdk1.8.0_131" änderte, konnte ich meine App erstellen.

wenn jemand weiß, warum dies so funktioniert, werde ich mich freuen zu wissen!

0

Es scheint ein Problem mit Ihrem Keystore und nicht mit dem SDK zu geben. Ich weiß nicht, ob Sie wissen, was ein Keystore ist, also hier gehen Sie:

Ein Keystore ist eine Datei, die als ein "Kennwort" für Ihre App fungiert. Bei Google Play können Sie Ihre App beispielsweise nur aktualisieren, wenn das Update mit demselben Keystore wie Ihre App signiert ist. Was auch immer Sie tun, verlieren Sie den Schlüsselspeicher nicht, nachdem Sie Ihre App veröffentlicht haben.

Wenn Sie noch keinen Jet einen Schlüsselspeicher für Ihre Anwendung erzeugt man eine in der Einheit erzeugen kann: https://forum.unity.com/threads/android-signing.62137/

Wenn Sie bereits einen Schlüsselspeicher haben es sehr wahrscheinlich irgendwie beschädigt wurde. Wenn du deine App bereits irgendwo veröffentlicht hast, hoffe ich, dass du ein Backup hast. Wenn nicht nur einen neuen Keystore generieren

+0

Danke für Ihre Antwort. Ich habe einen neuen Keystore erstellt. und füllte alles aus. Ich habe versucht, die Apk danach zu bauen und es gab mir immer noch den Fehler. Ist es ein Problem, wenn sich der Schlüsselspeicher nicht im Ordner "Assets" befindet? –

Verwandte Themen