Android NDK 错误 No such file or directory for a path that exists in Eclipse

Posted

技术标签:

【中文标题】Android NDK 错误 No such file or directory for a path that exists in Eclipse【英文标题】:Android NDK error No such file or directory for a path that exists in Eclipse 【发布时间】:2012-10-05 02:22:30 【问题描述】:

我在 Eclipse 中收到以下错误:

**** Build of configuration Default for project com.opera.sdk.Opera ****

D:\android-ndk-r8b-windows\android-ndk-r8b\ndk-build.cmd all 
"Compile++ thumb : operanative <= main.cpp

In file included from jni/src/main.cpp:4:0:
jni/include/controller.hpp:6:28: fatal error: gogi_opera_api.h: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs/operanative/src/main.o] Error 1

**** Build Finished ****

这是我的 Android.mk 生成文件:

MY_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_PATH := $(MY_PATH)
LOCAL_MODULE    := libopera
LOCAL_SRC_FILES := libopera.a
include $(PREBUILT_STATIC_LIBRARY)

# final library
include $(CLEAR_VARS)
LOCAL_PATH := $(MY_PATH)
LOCAL_MODULE     := operanative
LOCAL_SRC_FILES  := src/main.cpp \
                    src/controller.cpp \
                    src/lock.cpp \
                    src/event.cpp \
                    src/dialog.cpp \
                    src/queue.cpp \
                    src/screen.cpp \
                    src/surface.cpp \
                    src/timer.cpp \
                    src/waiter.cpp \
                    src/window.cpp
LOCAL_C_INCLUDES := jni/include \
                    $(GOGI_SDK_PATH)/include \
                    $(GOGI_SDK_PATH)/jsplugins/ooif/include
LOCAL_WHOLE_STATIC_LIBRARIES := libopera
LOCAL_LDLIBS := -llog -ljnigraphics
include $(BUILD_SHARED_LIBRARY)

这是我的 Application.mk 文件:

APP_STL:=stlport_static
APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-14

问题中的 controller.hpp 文件有这些定义:

#ifndef CONTROLLER_HPP
#define CONTROLLER_HPP

#include <memory>

#include "gogi_opera_api.h"

#include "event.hpp"
#include "dialog.hpp"
#include "queue.hpp"
#include "screen.hpp"
#include "surface.hpp"
#include "timer.hpp"
#include "waiter.hpp"
#include "window.hpp"

我将文件放在正确的位置,并根据需要重写了 application.mk,但出现上述构建错误。

【问题讨论】:

GOGI_SDK_PATH 未在 Android.mk 中定义。所以它来自环境,或者可能来自命令行。验证此路径是否定义正确。在命令行上使用 V=1 运行 ndk-build。您将看到实际传递给编译器的参数。 【参考方案1】:

将 *.hpp 更改为 *.cpp

它在 echoprint 项目中为我工作。

【讨论】:

以上是关于Android NDK 错误 No such file or directory for a path that exists in Eclipse的主要内容,如果未能解决你的问题,请参考以下文章

android开发里跳过的坑-AS导入NDK工程提示错误 No such property: sdkHandler for class: com.android.build.gradle.Librar

Android MuPDF ndk build Error: No such file or directory

我的Android进阶之旅Android Studio中NDK开发移动.cpp 文件目录,重新编译报错:clang++: error: no such file or directory

C++学习(三六九)ranlib no such file

Android FFMpeg No such file or directory 错误

redhat7安装jdk1.7报错/home/renqiwei/jdk1.7/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such fi