Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms

转自:http://www.jianshu.com/p/fe4c334ee9fe

现象

在用 Unity 编译 Android 平台的应用时,遇到 Unable to list target platforms 的问题。

错误提示

详细错误描述如下:

Error:Invalid command android
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()

CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.
C:\Program Files\Java\jdk1.8.0_91\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="D:/Android/sdk\tools" -Dfile.encoding=UTF8 -jar "D:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -

stderr[
Error:Invalid command android
]
stdout[

]
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.BuildPlayerWindow:BuildPlayerAndRun()

原因

原因简单描述

Unity 在编译时会调用 Android SDK tools 中的 android 命令,而在新版本的 Android SDK tools 中,android这个命令已经废弃了,导致 Unity 无法正常编译。我的 Android SDK tools 版本是 25.3.1 。

找到问题原因的过程

经过再三确认,我配置的 Android SDK 是没问题的。

SDK设置

后来我注意到错误描述中有提到“无效的命令 android ”,所以我尝试直接调用 android 这个命令,看是不是有问题。

Error:Invalid command android

android 命令是 AndroidSDK 中 tools 目录下的 android.bat 。直接调用,发现这个命令已经废弃了。

The "android" command is no longer available.
For manual SDK and AVD management, please use Android Studio.
For command-line tools, use
tools\bin\sdkmanager.bat and tools\bin\avdmanager.bat

解决方案

知道了原因,问题就好解决了。

  1. 从官网下载一个旧版本的 Android SDK tools 。tools_r25.2.3-windows.zip
  2. 把原来 SDK 目录下的 tools 备份一下。我是把它重命名成 tools-25.3.1 。
  3. 把下载好的旧版本的 tools 解压到 SDK 目录下。
  4. 再在 Unity 中重新编译,问题已经解决了。

对比了一下两个版本的 tools,差别真的很大,少了很多东西。比如,做.9图的 draw9patch 就不知道去哪里了。

时间: 2024-12-19 04:21:32

Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms的相关文章

Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms(转载)

原文:http://www.jianshu.com/p/fe4c334ee9fe 现象 在用 Unity 编译 Android 平台的应用时,遇到 Unable to list target platforms 的问题. 错误提示 详细错误描述如下: Error:Invalid command androidUnityEditor.BuildPlayerWindow:BuildPlayerAndRun() CommandInvokationFailure: Unable to list targ

使用Android studio创建的AIDL编译时找不到自定义类的解决办法

使用AS创建ADIL文件时AS会在main文件夹下给我们生成一个aidl文件夹和一个相同包名的包,通常我们会把所有和ADIL相关的类或文件放在这个包下,但是如果存在自定义的类时,程序编译时无法通过,提示找不到自定义的包.解决办法如下,在启动Module的build.gradle中加入如下代码: sourceSets { main { manifest.srcFile 'src/main/AndroidManifest.xml' java.srcDirs = ['src/main/java', '

使用alipaySDK编译时找不到openssl/asn1.h文件的解决办法

构建新的项目时,在重新引入alipaySDK进行编译之后出现了一个错误:找不到 #include<openssl/asn1.h> 这个文件 首先排除是SDK的问题以及代码问题.在重新翻看了官方文档以及网上的一些帖子之后大致推断出问题出现的原因可能是由于文件路径的变化导致了配置信息出现错误.所以我的解决办法是重新配置文件路径. 1.打开项目,点击Build Settings,选择Header Search Paths. 2.在Header Search Paths对应的输入框中添加ssl的路径(

sublime text 编译时提示[WinError 2] 系统找不到指定的文件。

问题描述: [WinError 2] 系统找不到指定的文件. [cmd: ['g++', 'D:\\source-code\\sublime\\test.cpp', '-o', 'D:\\source-code\\sublime/test']] [dir: D:\source-code\sublime] [path: D:\program\basic\python3.4.0;C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem] 如下图:

PHP编译时提示libjpeg.(a|so) not found(找不到JPEG库)

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/mysql/mysql --with-mysqli=/mysql/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-

Linux程序可以编译连接但是执行时找不到*.so 一般都和LD_LIBRARY_PATH有关

http://bbs.chinaunix.net/thread-983182-1-1.html PATH变量: 此变量代表可执行程序在任意位置直接输入指令执行时,系统会到此变量标记的目录里去找对应的可执行程序. 有些命令的路径没有在PATH环境变量中,可以用echo $PATH命令查询得知,添加路径到PATH环境变量的方法如下: (1)如果只想在本次开机过程中临时性的添加修改,下次开机就无效的话,可以: export PATH=$PATH:path -----path为命令所在路径 (2)如果只

VS2017新建或拷贝项目编译时出现:找不到 Windows SDK 版本8.1.请安装所需的版本的 Windows SDK

VS2017新建或拷贝项目编译时出现:找不到 Windows SDK 版本8.1.请安装所需的版本的 Windows SDK 或者在项目属性页的问题解决方案 解决方法: 右击项目解决方案, 选择:重定解决方案目标. 提示框中,选择SDK版本后点击确定. 原文地址:https://www.cnblogs.com/ming-4/p/11736187.html

Unity编译Android的原理解析和apk打包分析

作者介绍:张坤 最近由于想在Scene的脚本组件中,调用Android的Activity的相关接口,就需要弄明白Scene和Activity的实际对应关系,并对Unity调用Android的部分原理进行了研究. 本文主要探讨Scene和Activity之间的关系,以及Unity打包apk和Android studio打包apk的差别在什么地方?找到这种差别之后,可以怎么运用起来? 本文需要用到的工具: Android反编译工具--apktool Android studio自带的反编译功能 一.

linux-gcc 编译时头文件和库文件搜索路径

一.头文件  gcc 在编译时寻找所需要的头文件 :  ※搜寻会从-I开始  ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH  ※再找内定目录/usr/include /usr/local/include/usr/lib/gcc-lib/i386-linux/2.95.2/include/usr/lib/gcc-lib/i386-linux/2.95.2/include/g++-3/usr/lib/gcc-lib/