Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安装及保养;在Eclipse中使用Android NDK_Android_Android Ndk_Installation - Fatal编程技术网

安装及保养;在Eclipse中使用Android NDK

安装及保养;在Eclipse中使用Android NDK,android,android-ndk,installation,Android,Android Ndk,Installation,我在Eclipse(MacOSX)中运行Android SDK已有一段时间了。我已经下载了NDK并在Eclipse中安装了C/C++工具,但是有人能指导我使用NDK吗?例如,我是否只是像普通人一样创建一个Android项目,然后用NDK来构建它 如果有人知道的话,真的需要一个像样的教程 编辑:好的,我现在安装了NDK(我想),但是有人知道如何使用它吗?到目前为止,我(取自): 运行终端 cd~/android-ndk-1.5_r1 make APP=hello jni 为了运行hello jni

我在Eclipse(MacOSX)中运行Android SDK已有一段时间了。我已经下载了NDK并在Eclipse中安装了C/C++工具,但是有人能指导我使用NDK吗?例如,我是否只是像普通人一样创建一个Android项目,然后用NDK来构建它

如果有人知道的话,真的需要一个像样的教程

编辑:好的,我现在安装了NDK(我想),但是有人知道如何使用它吗?到目前为止,我(取自):

运行终端

cd~/android-ndk-1.5_r1

make APP=hello jni

为了运行hello jni示例应用程序,我在terminal中遇到一个错误:

Android NDK:APP变量定义为 未知应用:hellojni
Android NDK:你可能想使用 以下选项之一:
build/core/main.mk:81:**Android NDK:正在中止。停下来


想知道为什么吗?

正如我所能描述的那样,从Eclipse中构建一个使用NDK的Android应用程序需要两个步骤

首先,在终端内部,您需要在项目上运行NDK构建脚本。将cd放入项目目录的根目录中,然后在该目录中执行ndk构建脚本

例如:

cd ~/workspace/hello-jni
./~/android-ndk-1.5_r1/ndk-build
完成此操作后,您应该会看到一些输出,这些输出会导致在项目目录的obj目录中创建一个*.SO文件

一旦您拥有了*.SO文件,通过Eclipse使用Android NDK构建应用程序的最后一步就是使用Eclipse构建应用程序,就像使用任何其他应用程序一样,然后部署它进行测试

如果对C/C++代码进行任何更改,则需要重复第一步并重新生成*.SO文件,然后再从Eclipse中构建和部署应用程序

我想指出的是,通过使用Android NDK,您的Android应用程序仍然基于Java。他们只是用C/C++编写的代码进行通信


最后,我不知道有任何Eclipse插件可以帮助NDK开发。我所知道的关于NDK的一切我都是从官方那里学到的。请随时发表评论,并让我知道在我的回复中是否有什么我可以澄清的。

NDK中的docs目录中有一些关于如何使用NDK本身的非常好的信息。阅读概述、Application.mk和Android.mk HTML文档。你会想在谷歌上搜索Sun JNI PDF,下载它,并在进一步研究之前了解JNI的全部内容。这是因为使用NDK将一堆C/C++代码编译成库只是过程的一部分。您必须编写调用C/C++的本机Java代码,并且必须在C/C++中创建符合本机Java代码可以调用的JNI约定的包装函数。JNI已经存在很长一段时间了,它不是特定于Android的。因此,为了了解它,您可以使用javah和javac之类的命令行工具,遵循面向JNI的教程,然后在了解基本知识后返回到与NDK的集成。(以这些C垫片的外观为例,看看NDK中的hello jni示例;那里的C源文件通常会显示垫片的外观。使用javah生成这些垫片是一种方法,您可以创建具有本机方法的Java类,使用javah处理它们,并为您生成C头,然后编写代码符合生成的函数原型的up C函数)


注意:虽然NDK文档会让您从命令行手动构建,然后进入Eclipse来构建您的应用程序(当然,这是一个费劲的步骤序列,尤其是在您更改C/C++代码时),但事实证明,您可以轻松地与Eclipse集成,以便每次从Eclipse构建时都运行NDK。要了解如何创建项目,.

这是为了帮助其他希望从eclipse中从头开始创建项目的人:我遵循了本博客中提到的步骤,效果很好:

要尝试直接回答问题,需要在文件夹中运行ndk build,并在项目文件夹中使用本机代码。这将创建Eclipse中jni下的文件资源管理器/资源树中的.so文件。如果代码中的语法正确,现在可以从java代码中调用这些函数


在安装Android开发者工具和NDK时,我发现了很多帮助来源。我写了一篇文章来分享我的经验,并希望能回馈帮助我到达那里的社区,这可能有助于理解我的答案:

自ADT版本20起,Eclipse环境中就有了本机开发和调试支持

  • 从Eclipse首选项->Android->NDK设置NDK路径
  • 右键单击您的项目并选择Android工具->添加本机支持
developer.android.com声明您还需要Cygwin

所需的开发工具

  • 对于所有开发平台,都需要GNU Make 3.81或更高版本。GNU Make的早期版本可能可以工作,但尚未经过测试
  • 还需要最新版本的awk(GNU awk或Nawk)
  • 对于Windows,需要Cygwin 1.7或更高版本。NDK不适用于Cygwin 1.5安装

好问题。我需要将NDK用于我正在进行的一个项目,但是没有太多好的信息。是的,我今天没有太多的时间,但是如果我完成了,我会在这里更新……这是一个很好的教程。Eclipse对NDK没有多大帮助,恐怕我已经在这里编写了一个分步教程。希望能有帮助。嘿,谢谢,我几年前写了这个问题,从来没有真正研究过,所以我会在几天左右试一下。谢谢+1谢谢。。。我见过这么多相互矛盾的ANSWR,这一个是为我做的。这个答案中的信息已经过时了。正如@HamidFadishei在下面指出的,现在有了一个eclipse插件