java - 在Linux服务器上编译Android .apk

标签 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)

对出了什么问题有什么想法吗?

最佳答案

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

从您提供的输出来看,./android 二进制文件似乎运行良好,但由于您运行的是 headless 服务器,因此它崩溃了。

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

  1. android 创建项目 --name ExampleProj --activity ExampleProj --path ./--package com.example.project --target 2
  2. ant 调试

这将创建一个ExampleProj-debug.apk

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

android --help create project

希望这有帮助。

关于java - 在Linux服务器上编译Android .apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722119/

相关文章:

java - Spring-boot UTF-8 资源

android - 如何从 asp.net web 服务检索 base64 字符串到 android

linux - 汇编 linux 中的 float

c - 我们如何在两个不同的内核模块之间共享一个哈希表

linux - 在后台 bash 脚本中启动下标,以便当我关闭终端/ssh session 时它仍然运行

java - App Engine/Google 云存储 输入流错误

java - 关于标准 JOptionPane 上的取消按钮的问题

java - 在 Spring 应用程序上下文文件中定义列表

java - Android:MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA

Android Management API 更改设备策略