5

我想编译并运行发送到我的 AndroidApp 的 .c 文件。我想在 ARM .c 文件上编译 ARM。我正在使用带有 Android 4.2 的 Galaxy Nexus。我已经安装了 Android SDK 和 Android NDK 我已经用终端 IDE 完成了这个,但我不想从终端手动编译它。现在我已经下载了适用于 Android 的 GCC (android-gcc-4.4.0),但不知道如何将其正确添加到我的应用程序中,以及如何从 Java 代码内部使用它进行编译。

我在互联网上阅读了很多关于此的内容,但没有一个真正帮助我弄清楚,如何做到这一点

所以我的问题是:如何使用我的 Android 应用程序中的 Android/NDK 工具链或任何其他工具链来编译然后运行 ​​.c 文件。

编辑: 我现在在我的手机上的文件目录(data/data/.../files)中解压了 android-gcc。我想在手机上调用gcc编译器来编译一个.c文件。我尝试使用:

String[] cmds={MainActivity.this.getFilesDir() + "/android-gcc-4.4.0/bin/arm-eabi-gcc-4.4.0", "-c", file_path};
String result = "";
Process p = Runtime.getRuntime().exec(cmds);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = in.readLine()) != null) 
{
    result += line + "\n";
}
alert_dialog("Output", result); // Creates and displays an alert dialog
in.close();
}
catch (Exception e) 
{
    alert_dialog("Error", e.toString() + "\n" + e.getMessage());
}

这是我在 Android 上调用 gcc 的方法,但我只得到以下异常:java.io.IOException: Error running exec()。命令 [...] 工作目录:空 环境空。

有谁知道如何在电话上正确调用 android-gcc 编译器?

任何帮助表示赞赏并提前感谢

4

1 回答 1

-2

这不是官方支持的方案;任何操作系统都不会让非特权应用程序随意在设备上安装可执行代码。

在有根电话上,您可能会有一些运气;但是,您仍然需要从头开始组装一个工具链。NDK 从来都不是为此而生的。没有在 ARM 上运行的 NDK。

于 2013-03-28T19:55:44.753 回答