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

举报
陈言必行 发表于 2021/08/14 00:28:53 2021/08/14
【摘要】 错误一: 没有指定keystore或指定路径不对。。。 产生原因:没有指定的Keystore,或者更换本地Keystore文件的位置导致。 解决办法:找到有效的Keystore,在下图指定位置重新指定,并输入正确密码! 没有指定Keystore,报错原文 UnityException: Can not sign the application Unab...

错误一: 没有指定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 之 安卓打包中遇见的那些坑(转)

文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/94491393

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200