Unity 之 安卓打包遇到的两个错误

错误一: 没有指定keystore或指定路径不对。。。

产生原因:没有指定的Keystore,或者更换本地Keystore文件的位置导致。

解决办法:找到有效的Keystore,在下图指定位置重新指定,并输入正确密码!

在这里插入图片描述

没有指定Keystore,报错原文

UnityException: Can not sign the application
Unable to sign the application; please provide passwords!
UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message, System.Exception ex)
UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message)
UnityEditor.Android.PostProcessor.Tasks.CheckPrerequisites.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessAndroidPlayer.PrepareForBuild (BuildOptions options, BuildTarget target)
UnityEditor.Android.AndroidBuildPostprocessor.PrepareForBuild (BuildOptions options, BuildTarget target)
UnityEditor.PostprocessBuildPlayer.PrepareForBuild (BuildOptions options, BuildTargetGroup targetGroup, BuildTarget target) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:97)
UnityEditor.HostView:OnGUI()


指定位置错误,报错原文

CommandInvokationFailure: Failed to build apk.
C:\Program Files\Java\jdk1.8.0_111\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir=“C:/Users/Public/Nwt/cache/recv/android-sdk\tools” -Dfile.encoding=UTF8 -jar “E:\program files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar” -
stderr[
Error: No such file or directory ‘C:/XYAssect/czhenya.keystore’
]
stdout[
]
exit code: 255
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.HostView:OnGUI()


错误二: 无法合并AndroidMainFest。。。

产生原因: 导入了两个冲突的jar包,里面自定义的AndroidMainFest不能自动合并导致 下文中的【 @android:authorities=“com.czhenya.test.fileProvider” ----- @android:authorities=“com.czy.test.fileProvider”】

解决办法:找到对应的jar包,将两者统一。我这边是将其他工程使用的jar包误添加到此工程,所以直接删除,就解决问题了。若不确定是否还有其他用处,建议剪切到其他文件下进行备份并再次尝试打包。

报错原文:

CommandInvokationFailure: Unable to merge android manifests. See the Console for more details.
C:\Program Files\Java\jdk1.8.0_111\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir=“C:/Users/Public/Nwt/cache/recv/android-sdk\tools” -Dfile.encoding=UTF8 -jar “E:\program files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar” -
stderr[
Error: [Temp\StagingArea\AndroidManifest-main.xml, E:\project\XYAssect\Temp\StagingArea\android-libraries\cb_com_xingyou_xyhsmj\AndroidManifest.xml:10] Trying to merge incompatible /manifest/application/provider[@name=android.support.v4.content.FileProvider] element:
<provider
– @android:authorities=“com.czhenya.test.fileProvider”
<provider
++ @android:authorities=“com.czy.xyhsmj.fileProvider”
]
stdout[
Warning: [Temp\StagingArea\AndroidManifest-main.xml:3, E:\project\XYAssect\Temp\StagingArea\android-libraries\ShareSDK\AndroidManifest.xml:20] Main manifest has but library uses name=‘com.mob.MobApplication’.
[Temp\StagingArea\AndroidManifest-main.xml, E:\project\XYAssect\Temp\StagingArea\android-libraries\ShareSDK\AndroidManifest.xml:48] Skipping identical /manifest/application/activity[@name=com.czhenya.test.wxapi.WXEntryActivity] element.
[Temp\StagingArea\AndroidManifest-main.xml, E:\project\XYAssect\Temp\StagingArea\android-libraries\ShareSDK\AndroidManifest.xml:52] Skipping identical /manifest/application/activity[@name=com.czhenya.test.apshare.ShareEntryActivity] element.
]
exit code: 1
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.HostView:OnGUI()


产生原因: AndroidSDK工具损坏或者版本过低

解决办法:检测AndroidSDK配置或者升级AndroidSDK工具

报错原文:

AndroidSDKToolsException: Unable to merge android manifests. See the Console for more details.
UnityEditor.Android.AndroidSDKTools.DetectErrorsAndWarnings (System.String logMessages, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommand (System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommand (System.String[] sdkToolCommand, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommand (System.String[] sdkToolCommand, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.MergeManifests (System.String target, System.String mainManifest, System.String[] libraryManifests, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit)
UnityEditor.Android.PostProcessor.Tasks.GenerateManifest.MergeManifests (UnityEditor.Android.PostProcessor.PostProcessorContext context, System.String targetManifest, System.String mainManifest)
UnityEditor.Android.PostProcessor.Tasks.GenerateManifest.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.HostView:OnGUI()



相关链接:
Unity 之 制作.keystore签名文件
Unity 之 安卓打包中遇见的那些坑(转)
发布了446 篇原创文章 · 获赞 630 · 访问量 50万+

猜你喜欢

转载自blog.csdn.net/Czhenya/article/details/94491393