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中的包名,密钥库路径,密钥库密码。

     
     
  • 相关阅读:
    DATAGUARD物理standby角色切换(笔记二)
    深入了解start with .....connect by (一)
    oracle lob字段处理
    InstallShield12命令行模式编译工程的几点问题总结Emma友情赞助转帖
    Installshield实用小函数为字符串截掉头尾空格
    使用Java Service Wrapper将Java程序发布成Windows Service艾泽拉斯之海洋女神出品
    Kevin专栏自定义安装对话框的界面
    Kevin专栏如何制作试用版安装包
    【海洋女神原创】关于installshield“完美卸载”的改进方法
    Installshield的相对路径问题
  • 原文地址:https://www.cnblogs.com/guxin/p/8649834.html
Copyright © 2011-2022 走看看