【问题标题】:Problem launching android AVM/SDK gui using the tools/android executable in the android SDK. Ubuntu 10.04, i686使用 android SDK 中的 tools/android 可执行文件启动 android AVM/SDK gui 时出现问题。 Ubuntu 10.04、i686
【发布时间】:2011-03-21 16:03:33
【问题描述】:

您好,我刚刚在运行 Ubuntu 10.04 (Lucid) 的 i686 Thinkpad T60 上安装了 android SDK 和 Eclipse 3.5。 (Eclipse 是通过突触安装的,即存储库中的一个包。)我安装了 eclipse 插件,Eclipse 端的一切似乎都很好。我还将 android-sdk 工具目录放在我的用户 PATH 上。现在启动不带任何参数的工具/android 应该会调出 SDK 和 AVD 管理器 GUI,但我收到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-gtk-3550 or swt-gtk in swt.library.path, java.library.path or the jar file
    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
    at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
    at com.android.sdkmanager.Main.showMainWindow(Main.java:265)
    at com.android.sdkmanager.Main.doAction(Main.java:249)
    at com.android.sdkmanager.Main.run(Main.java:94)
    at com.android.sdkmanager.Main.main(Main.java:83)

奇怪的是,我确实安装了所有先决条件,sun-java6-jdk 和 open-java6-jdk,并尝试在它们之间切换。另外,如果我查看突触,我安装了 libswt-gtk-3.5java。当我用 Eclipse 启动它时,他的 AVM/SDK 管理器也能正常启动。

(您可能想知道我为什么在乎,但我喜欢从命令行工作,并考虑使用 emacs 作为我的 IDE 而不是 Eclipse。)

如果有人知道我该如何解决这个问题,请告诉我。

【问题讨论】:

  • 嘿 - 将 Bart 的回答标记为已接受! :) 它有效。

标签: java android ubuntu-10.04


【解决方案1】:

(复制自 Ubuntu 论坛http://ubuntuforums.org/showthread.php?t=1540054

12 个月后我遇到了同样的问题。我发现这是因为我一将 /tmp 目录设为“noexec”,就让它可执行,我们很好。

sudo mount -o remount,exec /tmp

希望这对某人有所帮助。

【讨论】:

  • 感谢您对我的帮助!我花了一些时间才得到你的答案
  • 哇。那就是魔法哈利波特咒语。这让 DDMS 在我的 Kubuntu 11.10 AMD64 安装上从命令行(不是通过 eclipse)运行。谢谢。
  • 就在那儿!比以前更讨厌 java 的另一个原因......它试图执行 /tmp/swtlib-32/libswt-gtk-3550.so 去图......所以如果你真的需要 RO /tmp(你应该)只需将此目录符号链接到另一个地方......
  • 我不记得曾经这样做过。我认为这可能是 linux mint 上的默认设置。
  • 是的,Ubuntu 从来没有给我这个问题——只有 Linux Mint。我希望提问者有一天将您的答案标记为已接受!
【解决方案2】:

除了用户Bart说得好,我建议注意下面的提示:

高级 linux 用户或极客经常会遇到这个问题。 在 /etc/fstab 中应用“调整”(通常是为了提高速度)使 /tmp 成为 noexec 会导致这个问题。 只需打开 fstab 并修改条目如下:

sudo gedit /etc/fstab

如果您有类似的内容,只需评论该行或修改内容:

tmpfs /tmp tmpfs 默认值,noexec,nodev,nosuid 0 0

到:

tmpfs /tmp tmpfs 默认值,nodev,nosuid 0 0

【讨论】:

    【解决方案3】:

    看看

    android &lt;command&gt; --no-ui

    这根本不需要 SWT/GTK。

    【讨论】:

      【解决方案4】:

      这是一个老问题,但我想提出一个不那么“激烈”的答案...

      如果您不想更改文件系统挂载,另一种方法是您可以更改 android 工具启动脚本以明确指定 Java 应使用的临时目录。

      例如在android-studio/sdk/tools 目录中,就在android 脚本文件的末尾是执行java 的命令:

      exec "$java_cmd" \
          -Djava.io.tmpdir=/home/me/android-studio/.tmp \
          -Xmx256M $os_opts $java_debug \
          -Dcom.android.sdkmanager.toolsdir="$progdir" \
          -classpath "$jarpath:$swtpath/swt.jar" \
          com.android.sdkmanager.Main "$@"
      

      在此示例中,我使用“/home/me/android-studio/.tmp”,但当然您可以将其更改为您想要的任何内容。

      很遗憾,如果您更新 Android 工具,此更改将被覆盖,因此您每次更新时都必须重新应用它。您可以改为在您的配置文件中将 export 它作为全局环境属性(适用于所有 Java 应用程序),而不是编辑此脚本。

      【讨论】:

        【解决方案5】:

        我也遇到了这个问题。我通过将android sdk主目录(我安装在'/opt'中)的所有权更改给我来解决它。 这是通过以下方式完成的:

        sudo chown -R <username> /opt/android-sdk-linux 
        

        而且效果很好!

        【讨论】:

          【解决方案6】:

          只是显示代码的更好方式.. 考虑这是来自@Bart 答案的评论...

          由于某种原因,它试图从 /tmp 执行 swt-lib。这是错误的和愚蠢的,我不知道谁是这里的罪魁祸首(android 或 java lib 本身)

          所以,如果您不想将 /tmp 重新挂载为 RW,只需将该 swtlib 目录符号链接到其他位置即可。我把它移到了 android 目录。

          (0) ~
          hobo$ mv /tmp/swtlib-32 android/
          
          (0) ~
          hobo$ ln -sf ~/android/swtlib-32 /tmp/swtlib-32
          
          (0) ~
          hobo$ android/android-sdk-linux/tools/android 
          

          【讨论】:

            【解决方案7】:

            只需删除 tmp 目录的内容。

            sudo rm -rf /tmp/*
            

            之后尝试启动 android sdk manager。 它对我有用。

            【讨论】:

              【解决方案8】:

              如果您想通过命令行启动 sdk-manager,另一种选择是,尝试运行:

              > sudo android sdk
              

              这将在管理员模式下运行,为您提供所需的权限

              【讨论】:

                猜你喜欢
                • 2018-09-07
                • 2012-02-07
                • 1970-01-01
                • 1970-01-01
                • 2022-11-05
                • 1970-01-01
                • 2015-02-15
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多