2014-10-04 74 views
0

我正在使用Android NDK,並且遇到此問題。我得到以下錯誤;編譯項目時出現未定義的引用錯誤(ANDROID NDK)

22:30:09 **** Incremental Build of configuration Default for project MrBlueFramework **** 
"D:\\Android_Development\\Android_NDK\\ndk-build.cmd" all 
Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml  
[armeabi] Compile++ thumb: MrBlueFramework <= MrBlueFramework.cpp 
[armeabi] SharedLibrary : libMrBlueFramework.so 
D:/Android_Development/Android_NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/MrBlueFramework/MrBlueFramework.o: in function android_main:jni/MrBlueFramework.cpp:11: error: undefined reference to 'Framework::Application::Application(android_app*)' 
D:/Android_Development/Android_NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/MrBlueFramework/MrBlueFramework.o: in function android_main:jni/MrBlueFramework.cpp:11: error: undefined reference to 'Framework::Application::~Application()' 
collect2: ld returned 1 exit status 
make.exe: *** [obj/local/armeabi/libMrBlueFramework.so] Error 1 

這是我的層次結構看起來像;

enter image description here

這裏是我的android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := MrBlueFramework 
LOCAL_SRC_FILES := MrBlueFramework.cpp \ 
        Framework/Application/Application.cpp\ 
LOCAL_C_INCLUDES  := $(LOCAL_PATH) 
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2 
LOCAL_STATIC_LIBRARIES := android_native_app_glue 

include $(BUILD_SHARED_LIBRARY) 
$(call import-module,android/native_app_glue) 

這裏是Application.h

#include <android_native_app_glue.h> 

namespace Framework 
{ 
    class Application 
    { 
    private: 

    public: 
     Application(android_app *state); 
     virtual ~Application(); 

     bool Initialize(); 
     void Run(); 

    }; 
} 

的內容這裏是主類(mrblueframework.cpp)

#include <jni.h> 
#include <android_native_app_glue.h> 
#include "Framework\Application\Application.h" 

using namespace Framework; 

void android_main(android_app *state) 
{ 
    app_dummy(); 

    Application app(state); 
} 

我不明白我在做什麼錯,我包括我的Application.h文件在上面,但仍然沒有找到它。請幫助我解決這個問題。

回答

1
LOCAL_SRC_FILES := MrBlueFramework.cpp 

Application.cpp不在那裏。

+0

問題是我沒有包括Application.cpp,所以它沒有找到所有上面declare函數的定義,謝謝你的幫助 – 2014-10-07 17:58:41

相關問題