zoukankan      html  css  js  c++  java
  • 【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:uildslaveunityuildEditorMonoBuildPlayerWindowBuildMethods.cs:162
    at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00050] in C:uildslaveunityuildEditorMonoBuildPlayerWindowBuildMethods.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构建项目时,可能会发生这个错误。
    原因:直接参照报错来一个个处理。如图,是安卓项目在读取清单文件AndroidManifest.xml时找不到mipmap文件夹下的图片。我用Android Studio2.3.3创建的项目默认没有mipmap文件夹的,自然找不到需要的资源。新建该文件夹并从mipmap-hdpi文件夹中拷贝图片过来即可。
     

    问题:Unity可以导出APK,但是不能安装到模拟器/真机上运行。

    原因:模拟器上面有过该软件的早期版本,要先卸载了才能再装新版本上去。
     

    问题:Unable to list target platforms

    参考:https://stackoverflow.com/questions/42538433/not-finding-android-sdk-unity

    一种说法是Unity5.5与Androi的SDK tool版本冲突,需要重新下载并替换调安卓SDK目录下的tool文件夹。

    但我在尝试后依然报这个错,又看到一种说法这是Unity5.5的Bug,需要升级到5.6或2017.1才能解决。

    看来真是版本问题5.6.1修好了,后边的版本又重复出现,是个蛮严重的bug了。

     https://forum.unity.com/threads/unity3d-5-5-0fx-unable-to-list-target-platforms-error.446096/page-2

    我下了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:uildslaveunityuildEditorMonoBuildPlayerWindowBuildMethods.cs:181 
      at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00065] in C:uildslaveunityuildEditorMonoBuildPlayerWindowBuildMethods.cs:88 
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    CommandInvokationFailure: Gradle build failed. 
    C:/Program Files/Java/jdk1.8.0_131injava.exe -classpath "D:Unity 2017.3.0f3EditorDataPlaybackEnginesAndroidPlayerToolsgradlelibgradle-launcher-4.0.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"

    检查Player Settings中的包名,密钥库路径,密钥库密码。

     
     
  • 相关阅读:
    盒子垂直水平居中
    Sahi (2) —— https/SSL配置(102 Tutorial)
    Sahi (1) —— 快速入门(101 Tutorial)
    组织分析(1)——介绍
    Java Servlet (1) —— Filter过滤请求与响应
    CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)
    JBoss Wildfly (1) —— 7.2.0.Final编译
    CAS (7) —— Mac下配置CAS 4.x的JPATicketRegistry(服务端)
    CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
    CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解
  • 原文地址:https://www.cnblogs.com/guxin/p/8649834.html
Copyright © 2011-2022 走看看