Java 在Linux服务器上编译Android.apk

Java 在Linux服务器上编译Android.apk,java,android,linux,compiler-construction,ant,Java,Android,Linux,Compiler Construction,Ant,我希望能够在我的Ubuntu10.04 i386服务器上,使用ant以编程方式构建.apk文件,给定Android项目文件夹、.java、.xml等文件。我没有使用Eclipse,甚至没有使用GUI 1我已经按照以下说明进行了操作: 2我在这里下载/解包了Android Linux SDK: 3现在,当我导航到/home/myusername/www/android-sdk-linux_x86/tools并键入/android时,我收到以下错误: myusername@myserver:~/ww

我希望能够在我的Ubuntu10.04 i386服务器上,使用ant以编程方式构建.apk文件,给定Android项目文件夹、.java、.xml等文件。我没有使用Eclipse,甚至没有使用GUI

1我已经按照以下说明进行了操作:

2我在这里下载/解包了Android Linux SDK:

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)

有什么问题吗?

如果您希望运行headless android,请发布一些命令行选项,如-help


但是,如果这不是您的意图,并且您希望使用显示器显示android GUI使用ssh-X启用X11转发,请安装libswt-gtk-3.5-java并将android_-SWT设置为/usr/lib/java。

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

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

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

android创建项目-name ExampleProj-activity ExampleProj-path./-package com.example.project-target 2 蚂蚁调试 这将创建ExampleProj-debug.apk

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

android --help create project

希望这能有所帮助。

另外,我很抱歉,我挖得更深了一点,在这里发现了一条非常相似的线索:
多亏了米兰,我终于找到了解决办法。首先,如果未安装,请在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中。登录/注销后,更改将是永久性的:

您的路径上有什么版本的java?java版本?JAVA_HOME是否设置为您环境中的任何内容?请检查此处的答案:@slund在运行JAVA-version时,它显示为1.5.0_22,即使我安装了1.6。我该怎么解决这个问题?@Aleadam看起来很像,谢谢!对不起,我以前没有找到这个…我的apologies@lollercoaser别担心。我没有将它标记为dupe,因为它是相同的错误,但情况不同。我只是把它和你联系起来了。有用吗?哦,我明白了。因此,当我使用ssh连接到服务器时,我可以使用-X标志启用GUI功能。很酷。我怎么设置ANDROID_SWT呢?你的目标不只是构建.apks吗?只有当你想玩模拟器时,启用X11转发才有意义。ANDROID_SWT应该在你的环境中设置。@nunaxe,是的,我的目标只是构建应用程序。我根本不在乎模拟器