在Linux服务器上编译Android .apk

时间:2011-04-19 20:14:16

标签: java android linux compiler-construction ant

我希望能够在我的Ubuntu 10.04 i386服务器上使用ant提供Android项目(文件夹,.java,.xml等文件)以编程方式构建.apk文件。我没有使用Eclipse甚至是GUI。

1)我已经按照这些说明操作:http://source.android.com/source/initializing.html

2)我在这里下载/解压缩了Android Linux SDK:http://developer.android.com/sdk/index.html

3)现在,当我导航到/home/myusername/www/android-sdk-linux_x86/tools并输入./android时,我收到此错误:

myusername@myserver:~/www/android-sdk-linux_x86/tools$ ./android
Starting Android SDK and AVD Manager
No command line parameters provided, launching UI.
See 'android --help' for operations from the command line.
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3550 or swt-pi-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.gtk.OS.<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:297)
    at com.android.sdkmanager.Main.doAction(Main.java:281)
    at com.android.sdkmanager.Main.run(Main.java:99)
    at com.android.sdkmanager.Main.main(Main.java:88)

关于出了什么问题的任何想法?

4 个答案:

答案 0 :(得分:2)

如果您希望运行headless android问题,可以选择一些命令行选项,例如 - help

但是,如果这不是您的意图,并且您想使用您的显示器显示Android GUI使用ssh -X启用X11转发,请安装libswt-gtk-3.5-java并将ANDROID_SWT设置为{{1 }}

答案 1 :(得分:2)

当您运行没有参数的./android二进制文件时,它会尝试打开GUI窗口。

从您提供的输出中,似乎./android二进制文件工作得很好,但是由于您运行的是无头服务器,它会崩溃。

以下是构建Android .apk的命令行步骤:

  1. android create project --name ExampleProj --activity ExampleProj --path ./ --package com.example.project --target 2
  2. ant debug
  3. 这将创建一个 ExampleProj-debug.apk

    一个很好的帮助来源是./android二进制文件的 - help 参数,以及您要采取的操作。例如:

    android --help create project
    

    希望这有帮助。

答案 2 :(得分:1)

感谢dtmilano,我设法找到了解决方案。首先,如果没有安装,请在debian机器上安装libswt-gtk-3.5-java,如果在archlinux上则安装swt。如果在i686机器上,请输入终端:

export ANDROID_SWT=path-to-android-sdk/tools/lib/x86

如果在x86_64上(你可能需要一些额外的32位库,我不知道)

export ANDROID_SWT=path-to-android-sdk/tools/lib/x86_64

然后android会运行。如果你想使这个永久化,一个简单的方法是将上面的行放在〜/ .bashrc中。登录/注销后,更改将是永久性的:)

答案 3 :(得分:0)

另外 - 道歉,我挖了一点,发现了一个非常相似的主题: "android update sdk" on headless linux