您的 SDK 位置包含非 ASCII 字符 - 工具菜单中没有 Android

Posted

技术标签:

【中文标题】您的 SDK 位置包含非 ASCII 字符 - 工具菜单中没有 Android【英文标题】:Your SDK location contains non-ASCII characters - no Android in Tools Menu 【发布时间】:2018-08-19 03:45:15 【问题描述】:

我刚刚下载并安装了android Studio,但工具菜单中没有Android子菜单,仪器上也没有AVD Manager图标控制板。当我启动 SDK Manager 时,出现错误消息:

请指定 Android SDK 位置

SDK Manager screenshot: "Please specify a Android SDK location"

如果我点击 Android SDK Location 字段旁边的 Edit 链接,则会出现另一条错误消息:

您的 SDK 位置包含非 ASCII 字符

SDK Components Setup screenshot: "Your SDK location contains non-ASCII characters"

我研究了这些有点相似的问题,但没有一个对我有帮助:

Your project path contains non-ASCII characters android studio

Unable to install SDK tools component while installing Android Studio

unable to install or locate android sdk in android studio

NO Android option in "tool" menu, and no avd manager

我看到该路径确实包含非 ASCII 字符,但除了卸载 Android Studio 然后从头开始将其安装到其他目​​录(如 С:\Android\SDK)之外,还有其他解决方法吗?

UPD

目前似乎没有这样的解决方法

【问题讨论】:

【参考方案1】:

事实上,目前没有其他办法,只能将 Android Studio 重新安装到没有非 ASCII 字符和空格的其他目录,例如 С:\Android\SDK

【讨论】:

【参考方案2】:

如果您不想在其他位置重新安装 Android SDK,您也可以创建一个 连接点,它是指向实际位置的链接。您可以使用junction tool 来执行此操作。

例如,您可以创建目录 C:\Android,然后创建联结 SDK 并声明 SDK 与

Junction C:\Android\SDK C:\Users\Whatever\actual\location

操作系统将在两个路径下显示相同的内容,应用程序将不知道差异。

【讨论】:

感谢您的回答!从命令行尝试了这个,连接文件是在磁盘 C 上创建的:但是当我点击它试图跳转到目录时,我收到错误消息:找不到文件。我猜问题出在路径中的非 ASCII 字符中【参考方案3】:

我想你现在已经解决了这个问题,但是我今天遇到了同样的问题,经过一些研究和一些烦人的尝试后,我解决了它。我发现是这样的:

使用mklink 函数,您可以创建一个到某个位置的连接,但如果您将它创建到一个不存在的位置(这就是您得到的“未找到文件”),它不会妨碍您。在这种情况下,由于C:\Users\username\AppData\Local\Android\Sdk 应该(不确定)在安装过程中由 Android Studio 设置向导创建,因此您正在创建一个不存在的位置的连接点。为了解决这个问题,您应该在C:\Users\username\AppData\Local 中创建\Android\Sdk 并完成。

安装程序不会显示与 Sdk 安装位置中不存在的位置的连接,因此如果您不创建文件夹,则无法选择链接。

最后但同样重要的是,安装程序不允许将 Sdk 安装在根目录 C:\ 中的文件夹中,因此您必须在除根目录之外的任何其他目录中创建连接或移动如果它已经在那里(这就是我所做的)。

在我写这篇文章时,安装程​​序正在运行,完成后我在存储 Android Proyects 的位置遇到了完全相同的问题,因此必须将安装程序的相同解决方案应用于 @987654326 @ 在New proyect 步骤中。

这正是我所做的:

1) 在C:\Users\username\AppData\Local\ 中创建\Android\Sdk

2) 以管理员身份打开cmd 并输入以下命令:

mklink /J "C:\..\android-sdk" "C:\Users\username\AppData\Local\Android\Sdk"

它会返回这个:

C:\WINDOWS\system32>Junction created for C:\..\android-sdk <<===>> C:\Users\username\AppData\Local\Android\Sdk

注意:android-sdk 是 junction 的名称,您可以随意命名,\..\ 指的是您要放入的文件夹,请确保其中没有非 ASCII 字符无论如何,该文件夹的名称。

3) 在 SDK 安装位置,选择 C:\..\android-sdk 即可开始安装。

4) 为新项目重复 Save location 的过程,只是使用您希望存储项目的位置而不是 C:\Users\username\AppData\Local\Android\Sdk

没有尝试移动 junctions 文件,但我建议您不要这样做,我猜这可能会丢失路径并弄乱安装。

希望这对您的项目有用并祝您好运!

【讨论】:

【参考方案4】:

嘿,我在这里遇到了同样的问题,但我可以通过直接将目录更改为硬盘上的新文件夹来解决它。 希望这能有所帮助。

【讨论】:

【参考方案5】:

在我的情况下,因为我有一个 Windows 10 操作系统,并且我的 sdk 位于 Program Files 中。目录中有空格会导致某种错误,为了解决这个问题,我使用 mklink 在 C 驱动器中创建了一个名为 android-sdk 的连接,指向我的 sdk 所在的目录。

如果在里面找不到sdk

C:\Users\username\AppData\Local\Android\Sdk 

我建议看看

C:\Program Files (x86)\Android\android-sdk

然后尝试

mklink /J "C:\android-sdk" "C:\Program Files (x86)\Android\android-sdk"

然后打开 Android Studio 转到 Project Defaults > Project Structure > Android SDK,单击“...”按钮浏览您的 sdk 并选择您刚刚创建的 junction。或者,如果您因为这个问题还没有设置 android studio,请以管理员身份打开应用程序,选择主题设置等,当您到达 setup sdk 部分时,单击“...”按钮浏览您的sdk 并选择您刚刚创建的联结。

以管理员身份运行 Android Studio 设置很重要,否则您可能会在下载组件时遇到问题,如果您仍然遇到问题,则可能是您的防病毒软件阻止了设置。

【讨论】:

以上是关于您的 SDK 位置包含非 ASCII 字符 - 工具菜单中没有 Android的主要内容,如果未能解决你的问题,请参考以下文章

如何检测字符串中的非 ASCII 字符?

信用卡验证:卡名可以包含非 ASCII 字符吗?

Python:将包含非 ASCII 字符的列表写入文本文件

如何在 Linux 中打开包含非 Ascii 字符串的 wchar_t* 文件?

(grep)正则表达式匹配非ASCII字符?

从数据文件中删除非 ASCII 字符