在Linux服务器上编译Android .apk
我希望能够在我的Ubuntu 10.04 i386服务器上使用ant以编程方式为Android项目(文件夹,.java,.xml等文件)编译.apk文件。我没有使用Eclipse甚至是GUI。在Linux服务器上编译Android .apk
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
我得到这个错误:
[email protected]:~/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)
有什么想法出错了?
当您运行不带参数的./android二进制文件时,它会尝试打开一个GUI窗口。
从您提供的输出中看来,./android二进制文件运行良好,但由于您运行的是无头服务器,因此崩溃。
下面是命令行步骤来建立一个Android的apk:
android create project --name ExampleProj --activity ExampleProj --path ./ --package com.example.project --target 2
ant debug
这将创建一个ExampleProj-debug.apk。
一个很好的帮助是--help ./android二进制文件的参数,以及您想要执行的操作。例如:
android --help create project
希望这会有所帮助。
如果您希望运行无头android,请发出一些命令行选项,如--help。
但是,如果这是不是你的意图和你想用你的显示器显示的Android GUI使用ssh -X
,使X11转发,安装libswt-gtk-3.5-java
并设置ANDROID_SWT
到/usr/lib/java
。
哦,我明白了。所以当我进入我的服务器时,我可以使用-X标志启用GUI功能。凉。 – lollercoaster 2011-04-19 20:50:58
但我该如何设置ANDROID_SWT? – lollercoaster 2011-04-19 20:51:19
你的目标不仅仅是建立.apks吗?如果你想玩模拟器,启用X11转发才有意义。 – nunaxe 2011-04-19 21:01:43
感谢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中。登录/注销后,更改将永久:)
java的哪个版本在您的路径上?java -version? JAVA_HOME是否设置为env中的任何内容? – slund 2011-04-19 20:28:00
这里检查答案:http://*.com/questions/2157089/android-update-sdk-on-headless-linux – Aleadam 2011-04-19 20:34:21
@slund运行时,'Java的-version'它说:“1.5.0_22”即使我容易 - 安装1.6。我应该如何解决这个问题? – lollercoaster 2011-04-19 20:53:40