如何运行NDK样本?

时间:2012-03-19 23:20:36

标签: android-ndk

很抱歉问这样一个noob问题,但NDK文档错了(r7b):

  

如果您使用ADT在Eclipse中进行开发,请使用“新建项目向导”   使用“导入”为每个示例创建一个新的Android项目   来自“现有来源”选项并从中导入来源   <ndk>/apps/<app_name>/project/。然后,如有必要,设置AVD   在模拟器中构建/运行应用程序。

没有“apps”文件夹,示例中不包含“project”文件夹。那么...运行样本的正确方法是什么?

另外,我可以配置Eclipse自动构建代码的C ++部分吗?

4 个答案:

答案 0 :(得分:5)

  1. 单击文件|新的|项目...
  2. 选择Android项目,下一步
  3. 项目名称:这是包资源管理器中显示的项目名称。它只是存储在Eclipse创建的.project文件中的字符串。没有使用此名称创建文件或文件夹,并且输出二进制文件似乎不包含此名称。
  4. 点击“从现有来源创建项目”
  5. 位置:选择项目的根文件夹,例如... /机器人-NDK-经R 7b /样品/位图的血浆
  6. 单击“下一步”并选择目标API。 Eclipse似乎不允许稍后更改,至少不能从GUI更改。我不知道为什么Eclipse不会简单地从AndroidManifest.xml中的<uses-sdk>或default.properties中的“target”行获取此信息。我也不知道为什么两者可能不同(例如在位图等离子体样本中,target=android-9<uses-sdk android:minSdkVersion="8"/>。)
  7. 单击下一步并考虑更改“包名称”字段,默认为“your.package.namespace”。但是,如果不更改此字段,项目将正常运行。不选中“创建活动”和“创建测试项目”。
  8. 单击“完成”。 Eclipse将在现有代码旁边创建大量额外文件(例如.classpath,.project,project.properties)和文件夹(bin,gen,assets)。这是除了由ndk-build(obj和libs)创建的输出文件夹之外。
  9. Eclipse不会自己构建本机代码,但它会自动部署本机代码(例如libplasma.so)如果它知道它。在命令行上构建本机代码后,例如:

    C:\...\android-ndk-r7b\samples\bitmap-plasma>..\..\ndk-build
    Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
    Gdbsetup       : libs/armeabi/gdb.setup
    Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi-v7a/gdbserver
    Gdbsetup       : libs/armeabi-v7a/gdb.setup
    "Compile thumb : plasma <= plasma.c
    SharedLibrary  : libplasma.so
    Install        : libplasma.so => libs/armeabi/libplasma.so
    "Compile thumb : plasma <= plasma.c
    SharedLibrary  : libplasma.so
    Install        : libplasma.so => libs/armeabi-v7a/libplasma.so
    

    右键单击您的项目并选择“Refresh”,否则Eclipse在启动模拟器时可能无法上载本机代码。

    最后,要运行该示例,请右键单击该项目,然后选择“运行方式” Android应用程序。 See here关于选择使用哪个模拟器。

    See here关于配置Eclipse以自动构建本机代码。

    我很好奇为什么NDK会为每个ABI生成两个大小不同的* .so文件,例如:它创建libs/armeabi-v7a/libplasma.so(15 KB),但也创建obj/local/armeabi-v7a/libplasma.so(63 KB)。有人知道区别吗?

答案 1 :(得分:1)

而不是长途跋涉(经验丰富的程序员喜欢它 - 但对初学者而言)。有一种方法可以在Eclipse和NDK中构建本机库。

1&GT;首先,您需要确保Windows中的NDK路径正确 - &gt;偏好 - &gt; (标签)Android - &gt; NDK - 如果未设置 - 将其指向ndk目录。

2 - ;假设您已按上述方式导入项目(新建|项目|从现有代码创建) - 右键单击​​项目并转到“Android工具 - >添加本机支持...”。如果设置了路径,它将构建示例。然后,您可以通过按播放按钮将其部署到设备或AVM。

SOURCE

答案 2 :(得分:0)

我正在使用Eclipse ADT和Android ndk 5b。我正确的项目路径是android-ndk-5b / samples / project

从现有来源导入时,您必须选择正确的目标,我使用的是Android 2.3.3。

之后,我从命令行更新了我的项目,看看这个链接,http://developer.android.com/sdk/ndk/overview.html 从示例路径写:android update project -p。 -s和$ Your_Path_Android_ndk / ndk-build

最后,只在Eclipse中作为Android应用程序运行并且已经完成

答案 3 :(得分:0)

似乎使用Eclipse Juno,您现在可以

  1. 单击文件|新的|项目...
  2. 在Android类别下,从现有代码中选择Android Project,然后单击下一步。
  3. 然后,您可以在根目录中浏览并确认您的示例项目位置。
  4. 从这里,Eclipse可以自动检测jni并找到项目。

    如果这不起作用,请转到终端或命令提示符并导航到项目根目录(您可以在其中看到jni文件夹)。然后输入

    android update project -p . -t <your target level>
    

    这应该是,例如,android-9

    在此之后,再次尝试初始步骤。