【Unity】打包安卓APK常见问题
问题:unity error invalid command android
原因:Android版本较新,Unity版本太旧(如4.X),Unity打包APK时调⽤Android⼯具使⽤的命令已被安卓弃⽤了(⽽Unity不知道)。
安卓软件签名工具办法:替换Android/Sdk/tools⽂件夹下的所有内容为⽼版本的tools。(记得把原来的tools先备份)
问题:UnityEditor.BuildPlayerWindow+BuildMethodException: Build failed with errors.
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x001b9] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:162
at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00050] in
C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:83
UnityEditor.HostView:OnGUI()
原因⼀:Unity不允许打包到项⽬的Assets⽂件夹中。
办法:更换⼀个Build输出⽬录(如输出到桌⾯)。
参考:
原因⼆:Unity2017.1版本中倒出时选择的Build System是内置的(Internal),且Player Settings⾥没有打上签名(⽤的Internal默认的Debug签名)
办法:Build System选择Gradle,在Player Settings中设置签名。
问题:CommandInvokationFailure: Failed to re-package resources.
场景:做安卓Unity混合开发,把安卓项⽬导⼊Unity后再⽤Unity构建项⽬时,可能会发⽣这个错误。
原因:直接参照报错来⼀个个处理。如图,是安卓项⽬在读取清单⽂件l时不到mipmap⽂件夹下的图⽚。我⽤Android Studio2.3.3创建的项⽬默认没有mipmap⽂件夹的,⾃然不到需要的资源。新建该⽂件夹并从mipmap-hdpi⽂件夹中拷贝图⽚过来即可。
问题:Unity可以导出APK,但是不能安装到模拟器/真机上运⾏。
原因:模拟器上⾯有过该软件的早期版本,要先卸载了才能再装新版本上去。
问题:Unable to list target platforms
⼀种说法是Unity5.5与Androi的SDK tool版本冲突,需要重新下载并替换调安卓SDK⽬录下的tool⽂件夹。
但我在尝试后依然报这个错,⼜看到⼀种说法这是Unity5.5的Bug,需要升级到5.6或2017.1才能解决。
看来真是版本问题5.6.1修好了,后边的版本⼜重复出现,是个蛮严重的bug了。
我下了Unity2017.3.0f3再试依然,⼜多了个新问题:
unity sdk build tools version 0 < 24
⼀直提⽰安卓的SDK tool⼯具版本太低,照上⾯的⽅法下载r25.2.5去替换tools也不⾏。最后检查Android Studio发现,在SDK Manager中默认是没有装上Android SDK Tools这项的!补装上去(版本号⼤于24),Unity这边就能导包APK成功了!
Gradle编译报错
UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0020e] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:181
at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00065] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:88 UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
CommandInvokationFailure: Gradle build failed.
C:/Program Files/Java/jdk1.8.0_131\ -classpath "D:\Unity 2017.3.0f3\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.0.1.jar" adle.launcher.GradleMain "-adle.jvmargs=-检查Player Settings中的包名,密钥库路径,密钥库密码。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。