安卓:找不到sdkmanager.jar

13
我从https://developer.android.com/studio/index.html下载了 Android SDK 工具,并获得了一个名为tools_r25.2.3-linux.zip的压缩文件。解压后,生成了一个名为tools的文件夹,其中包含sdkmanager和android。当我尝试运行它时,出现了上面的错误信息。
我将ANDROID_HOME设置为tools目录,但仍然无法运行。
4个回答

17
原来需要将 ANDROID_HOME 设置为父目录,并将zip文件(一个名为tools的单个目录)的内容包含在其中。一旦我这样做了,它就正常工作了。这似乎很令人困惑,值得添加到stackoverflow上。

2
我在https://code.google.com/p/android/issues/detail?id=230705请求改进这个几乎没有帮助的错误信息。 - Kalle Richter
3
确认这对我有用;我创建了~/Android文件夹,并将tools目录放在其中。现在的PATH设置如下:export ANDROID_HOME=~/Androidexport PATH=$ANDROID_HOME:$ANDROID_HOME/tools/bin:$PATH - JESii
1
事实证明,ANDROID_HOME并不是必需的。将“tools”重命名为“android-tools”才是罪魁祸首。 - MauganRa
它们是不同的问题,但我最终遇到了这两个问题。 - Jesse W at Z - Given up on SE

4

Zip文件可以在任何地方打开。重要的是要保留名称为“tools”的文件夹及其文件。

从"tools"父目录下运行android程序,方法如下:

$ ./tools/android

这将更新tools的父目录(你正在运行./tools/android的目录)中的一些文件夹和工具。
我把这个父目录命名为sdk。我还把整个名为sdk的目录放在了以下载版本命名的文件夹中。
现在,为了保持我的编程环境的一致性,我会将此sdk绑定到/opt目录中的一个文件夹中,以便系统范围内都可以使用它。
层次结构变成了:
/home/userid/android_r25.2.3/sdk

现在我在/opt/目录下创建一个名为/opt/android/sdk的文件夹。

我的/etc/fstab条目如下:

/home/userid/android_r25.2.3/sdk  /opt/android/sdk none bind

它安装了:

$ sudo mount /opt/android/sdk

新版本或新安装唯一变化的是zip文件打开的位置。将/home/userid/android_r25.2.3/sdk替换为您提取zip文件的位置,就不需要更改任何其他内容。
PATH变量将始终变为:
$ export PATH=$PATH:/opt/android/sdk/tools:/opt/android/sdk/platform-tools

当然,Eclipse的安卓配置如下所示:
/opt/android/sdk

使用这种一致的过程可以使重新安装和在新机器上安装变得非常无缝...只有一个可能会改变的变量,那就是软件包被提取的位置。

3

还有一个问题是,为了允许任何版本管理(或者如果像“tools”这样的无信息目录名称不会干扰您,则将其保留在主目录中),必须保留unzip结果tools的名称并将其移动到要创建的目录中。然后像@JesseW解释的那样设置ANDROID_HOME


1
请注意,如果您将其留在主目录中并更新SDK,则会在主目录中创建其他目录,这可能不是您想要的。 - Jesse W at Z - Given up on SE

0

将解压工具放入例如~/android-sdk,这样它就会存在于~/android-sdk/tools中。

然后在~/.bashrc中:

export ANDROID_HOME="$HOME/android-sdk" ANDROID_TOOLS="$ANDROID_HOME/tools" ANDROID_PLATFORM_TOOLS="$ANDROID_HOME/platform-tools" export PATH=${PATH}:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS;

然后运行sdkmanager


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接