1

我正在为一个 Android 应用程序配置 NDK,该应用程序在其标头中使用 linux/input.h 文件 - #include 。问题是当我调用 ndk-build 时,它给出了一个错误,基本上意味着它找不到 linux/input.h。现在,cygwin 不包含 linux 目录,这可能是发生此错误但 ndk 确实包含它的原因 - android-ndk-r8e\platforms\android-14\arch-x86\usr\include\linux\input.h - ndk-build 不应该在这里搜索吗?为了提供更多上下文,我正在尝试编译此处描述的 EventInjector 库,而其他库似乎可以正常工作,这意味着它必须以某种方式成为可能。

4

1 回答 1

1

请遵循以下说明:

  1. 在 Android.mk 中

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    TARGET_PLATFORM := android-8
    LOCAL_MODULE    := your_lib
    LOCAL_SRC_FILES := my_file.c
    LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
    include $(BUILD_SHARED_LIBRARY)</li>
    

your_lib将是您的库的名称,您可以写任何名称

my_file.c将是您存在于 JNI 文件夹中的源文件名

Right click on project
Choose Properties>Builders
Click on New...
Select Program, then Ok

In main tab:
Give your Builder a suitable name, eg. "NDK"
For Location, click on Browse file system>select your ndk-build.cmd,
eg. C:\android-ndk-r8-windows\android-ndk-r8\ndk-build.cmd (My NDK path)

Below there will be Working Directory:
Click on: Browse workspace - choose your project,
eg. ${workspace_loc:/Test} (My project 'Test')

Click on **Refresh Tab**
Select **Specific Resources** radio button
Click on **Specify Resources..**
Select libs folder from your project
Now click on **Build Options** Tab
Check:
After a Clean
During manual builds
During auto builds
Specify working set of relevant resources 
Click on **Specify Resources...**
Select JNI folder of your project
Click Apply...Ok 

现在清理它并构建......然后刷新

你会在 libs>armeabi libs>armeabi>your_lib.so 中得到 your_lib.so 这个结构会自动创建....

于 2013-07-20T06:29:17.653 回答