Android NDK:未定义的引用

时间:2015-06-17 15:36:27

标签: c++ android-ndk java-native-interface vtk

我正在尝试使用VTK为Android开发一个Android应用程序。 到目前为止,我已经编译了所有来源,一切都运行得很好。

现在我被困在这里,未定义的参考错误是:

Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in /Users/lonnibesancon/Documents/workspace/TestNativecopy/AndroidManifest.xml    
[armeabi-v7a] Compile++ thumb: ndk1 <= native.cxx
[armeabi-v7a] Compile thumb  : android_native_app_glue <= android_native_app_glue.c
[armeabi-v7a] StaticLibrary  : libandroid_native_app_glue.a
[armeabi-v7a] SharedLibrary  : libndk1.so
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkRenderWindow::New()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkRenderer::New()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkAndroidRenderWindowInteractor::New()'
/Users/lonnibesancon/Documents/workspace/TestNativecopy/jni/native.cxx:61: error: undefined reference to 'vtkRenderWindowInteractor::SetRenderWindow(vtkRenderWindow*)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkSphereSource::New()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkPolyDataMapper::New()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkAlgorithm.h:391: error: undefined reference to 'vtkAlgorithm::GetOutputPort(int)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkActor::New()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkConeSource::New()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkGlyph3D::New()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkAlgorithm.h:391: error: undefined reference to 'vtkAlgorithm::GetOutputPort(int)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkAlgorithm.h:391: error: undefined reference to 'vtkAlgorithm::GetOutputPort(int)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkGlyph3D.h:131: error: undefined reference to 'vtkGlyph3D::SetSourceConnection(int, vtkAlgorithmOutput*)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkPolyDataMapper::New()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkAlgorithm.h:391: error: undefined reference to 'vtkAlgorithm::GetOutputPort(int)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkNew.h:66: error: undefined reference to 'vtkActor::New()'
/Users/lonnibesancon/Documents/workspace/TestNativecopy/jni/native.cxx:88: error: undefined reference to 'vtkRenderer::AddActor(vtkProp*)'
/Users/lonnibesancon/Documents/workspace/TestNativecopy/jni/native.cxx:89: error: undefined reference to 'vtkRenderer::AddActor(vtkProp*)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkDebugLeaksManager.h:39: error: undefined reference to 'vtkDebugLeaksManager::vtkDebugLeaksManager()'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkDebugLeaksManager.h:39: error: undefined reference to 'vtkDebugLeaksManager::~vtkDebugLeaksManager()'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:190: error: undefined reference to 'AInputQueue_getEvent'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:192: error: undefined reference to 'AInputQueue_preDispatchEvent'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:197: error: undefined reference to 'AInputQueue_finishEvent'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:211: error: undefined reference to 'AConfiguration_new'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:212: error: undefined reference to 'AConfiguration_fromAssetManager'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:66: error: undefined reference to 'AConfiguration_getLanguage'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:67: error: undefined reference to 'AConfiguration_getCountry'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:223: error: undefined reference to 'ALooper_prepare'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:224: error: undefined reference to 'ALooper_addFd'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:179: error: undefined reference to 'AInputQueue_detachLooper'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:181: error: undefined reference to 'AConfiguration_delete'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:95: error: undefined reference to 'AInputQueue_detachLooper'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:100: error: undefined reference to 'AInputQueue_attachLooper'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:134: error: undefined reference to 'AConfiguration_fromAssetManager'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:66: error: undefined reference to 'AConfiguration_getLanguage'
/Users/lonnibesancon/android-ndk-r10e/sources/android/native_app_glue/android_native_app_glue.c:67: error: undefined reference to 'AConfiguration_getCountry'
collect2: error: ld returned 1 exit status
make: *** [/Users/lonnibesancon/Documents/workspace/TestNativecopy/obj/local/armeabi-v7a/libndk1.so] Error 1

我的android.mk文件的内容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
# VTK Libs
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkalglib-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkalglib-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkCommonColor-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkCommonColor-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkCommonComputationalGeometry-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkCommonComputationalGeometry-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkCommonCore-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkCommonCore-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkCommonMath-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkCommonMath-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkCommonMisc-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkCommonMisc-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkCommonSystem-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkCommonSystem-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkCommonTransforms-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkCommonTransforms-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkDICOMParser-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkDICOMParser-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkexpat-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkexpat-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkFiltersCore-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkFiltersCore-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkFiltersExtraction-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkFiltersExtraction-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkFiltersGeneral-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkFiltersGeneral-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkFiltersGeometry-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkFiltersGeometry-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkFiltersModeling-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkFiltersModeling-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkFiltersSources-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkFiltersSources-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkFiltersStatistics-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkFiltersStatistics-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkglew-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkglew-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkImagingCore-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkImagingCore-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkImagingFourier-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkImagingFourier-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkImagingHybrid-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkImagingHybrid-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkInfovisCore-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkInfovisCore-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkInteractionStyle-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkInteractionStyle-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkIOCore-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkIOCore-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkIOGeometry-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkIOGeometry-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS) 
LOCAL_MODULE := libvtkIOImage-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkIOImage-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkIOInfovis-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkIOInfovis-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkIOLegacy-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkIOLegacy-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkIOPLY-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkIOPLY-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkIOXML-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkIOXML-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkIOXMLParser-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkIOXMLParser-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkjpeg-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkjpeg-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkjsoncpp-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkjsoncpp-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtklibxml2-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtklibxml2-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkmetaio-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkmetaio-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkParallelCore-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkParallelCore-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkpng-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkpng-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkRenderingCore-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkRenderingCore-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkRenderingOpenGL2-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkRenderingOpenGL2-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtksys-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtksys-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtktiff-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtktiff-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvtkzlib-6.3
LOCAL_SRC_FILES = /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/lib/libvtkzlib-6.3.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)


LOCAL_C_INCLUDES := /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/alglib/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkexpat/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkglew/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkjpeg/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkjsoncpp/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtklibxml2/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkmetaio/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkpng/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtksys/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtktiff/
LOCAL_C_INCLUDES += /Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkzlib/

LOCAL_STATIC_LIBRARIES := cpufeatures android_native_app_glue ndk_helper
LOCAL_CPP_FEATURES := rtti exceptions
LOCAL_CPPFLAGS += --std=c++11


LOCAL_LDLIBS := -llog

LOCAL_MODULE    := ndk1
LOCAL_SRC_FILES := native.cxx

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

这可能是一个非常愚蠢的错误(仍然是新手),但如果可能,我想在这里提供一些帮助。

编辑:正如这里的一些帖子中所建议的那样,我尝试了LOCAL_ALLOW_UNDEFINED_SYMBOLS:=true 但它的作用是直到运行时才忽略问题,当我尝试运行应用程序时会直接返回错误,如下所示:

dlopen("/data/app-lib/com.example.vtknative-2/libndk1.so") failed: dlopen failed: cannot locate symbol 

"_ZN32vtkAndroidRenderWindowInteractor14HandleKeyEventEbiii" referenced by "libndk1.so"...

EDIT2:正如@samgak所建议的,我将预构建的静态库添加到了我的LOCAL_STATIC_LIBRARIES列表中。 然而,我得到的第一个错误是:

/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkAlgorithm.h:391: error: undefined reference to 'vtkAlgorithm::GetOutputPort(int)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkAlgorithm.h:391: error: undefined reference to 'vtkAlgorithm::GetOutputPort(int)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkAlgorithm.h:391: error: undefined reference to 'vtkAlgorithm::GetOutputPort(int)'
/Users/lonnibesancon/Desktop/VTK/build4/CMakeExternals/Install/vtk-android/include/vtk-6.3/vtkAlgorithm.h:391: error: undefined reference to 'vtkAlgorithm::GetOutputPort(int)'

这是vtkAlgorithm.h中的对应行(第389,390和391行)

vtkAlgorithmOutput* GetOutputPort(int index);
  vtkAlgorithmOutput* GetOutputPort() {
    return this->GetOutputPort(0); }

2 个答案:

答案 0 :(得分:1)

将预建的静态库添加到LOCAL_STATIC_LIBRARIES列表中:

LOCAL_STATIC_LIBRARIES := cpufeatures android_native_app_glue ndk_helper \
    libvtkalglib-6.3 \
    libvtkCommonColor-6.3 \
    libvtkCommonComputationalGeometry-6.3 \
    libvtkCommonCore-6.3 \
    libvtkCommonMath-6.3 \
    libvtkCommonMisc-6.3 \
    libvtkCommonSystem-6.3 \
    libvtkCommonTransforms-6.3 \
    libvtkDICOMParser-6.3 \
    libvtkexpat-6.3 \
    libvtkFiltersCore-6.3 \
    libvtkFiltersExtraction-6.3 \
    libvtkFiltersGeneral-6.3 \
    libvtkFiltersGeometry-6.3 \
    libvtkFiltersModeling-6.3 \
    libvtkFiltersSources-6.3 \
    libvtkFiltersStatistics-6.3 \
    libvtkglew-6.3 \
    libvtkImagingCore-6.3 \
    libvtkImagingFourier-6.3 \
    libvtkImagingHybrid-6.3 \
    libvtkInfovisCore-6.3 \
    libvtkInteractionStyle-6.3 \
    libvtkIOCore-6.3 \
    libvtkIOGeometry-6.3 \
    libvtkIOImage-6.3 \
    libvtkIOInfovis-6.3 \
    libvtkIOLegacy-6.3 \
    libvtkIOPLY-6.3 \
    libvtkIOXML-6.3 \
    libvtkIOXMLParser-6.3 \
    libvtkjpeg-6.3 \
    libvtkjsoncpp-6.3 \
    libvtklibxml2-6.3 \
    libvtkmetaio-6.3 \
    libvtkParallelCore-6.3 \
    libvtkpng-6.3 \
    libvtkRenderingCore-6.3 \
    libvtkRenderingOpenGL2-6.3 \
    libvtksys-6.3 \
    libvtktiff-6.3 \
    libvtkzlib-6.3

答案 1 :(得分:0)

似乎这个Android.mk刚刚完成了这项工作。我也发布了Application.mk以防万一,也可以帮助其他人。

似乎我没有正确链接。当我使用以下文件时没有出现任何错误时,我们的方式根本不起作用。

Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := ndk1

# Recursive wildcard in pure make, no external commands required
# From: http://stackoverflow.com/a/12959764
rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))

# Recursively find all *.cpp files under LOCAL_PATH
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(call rwildcard,$(LOCAL_PATH),*.cpp))

# Compiler flags
# LOCAL_CFLAGS += -Ofast -Wall -Wextra -pedantic -Wno-unused-parameter -DNDEBUG
LOCAL_CFLAGS += -Ofast -Wall -Wextra -pedantic -Wno-unused-parameter -UNDEBUG
# LOCAL_CFLAGS += -O0 -g -Wall -Wextra -pedantic -Wno-unused-parameter

# (optional) Silence warnings in the NDK headers
LOCAL_CFLAGS += -isystem ${NDK_ROOT}/platforms/$(TARGET_PLATFORM)/arch-arm/usr/include

# Enable NEON instructions
LOCAL_ARM_NEON := true

# Use the more efficient 32-bit instructions, at the expense
# of a larger code size
LOCAL_ARM_MODE := arm

# Logging library (__android_log_* functions)
LOCAL_LDLIBS += -llog

# OpenGL ES 2.0
LOCAL_LDLIBS += -lGLESv2
# LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES

LOCAL_LDFLAGS += -L /Users/lonnibesancon/Desktop/VTK/buildandroid2/CMakeExternals/Build/vtk-android/lib/

# NOTE: the link order is important!
LOCAL_LDFLAGS += -lvtkIOXML-6.3 -lvtkIOLegacy-6.3 -lvtkIOPLY-6.3 -lvtkIOGeometry-6.3 -lvtkFiltersModeling-6.3 -lvtkImagingCore-6.3 -lvtkRenderingCore-6.3 -lvtkIOImage-6.3 -lvtkDICOMParser-6.3 -lvtkmetaio-6.3 -lvtkpng-6.3 -lvtktiff-6.3 -lvtkjpeg-6.3 -lvtkFiltersSources-6.3 -lvtkFiltersGeometry-6.3 -lvtkIOXMLParser-6.3 -lvtkIOCore-6.3 -lvtkexpat-6.3 -lvtkFiltersExtraction-6.3 -lvtkFiltersGeneral-6.3 -lvtkFiltersCore-6.3 -lvtkCommonExecutionModel-6.3 -lvtkCommonComputationalGeometry-6.3 -lvtkCommonDataModel-6.3 -lvtkCommonMisc-6.3 -lvtkCommonTransforms-6.3 -lvtkCommonSystem-6.3 -lvtkCommonMath-6.3 -lvtkCommonCore-6.3 -lvtksys-6.3 -lvtkzlib-6.3
#notfound : -lvtkRenderingFreeType-6.3

# Use -isystem to silence warnings in the VES headers
#LOCAL_CFLAGS += -isystem $(LOCAL_PATH)/../../thirdparty/VES/Apps/Android/CMakeBuild/build/CMakeExternals/Install/eigen
#LOCAL_CFLAGS += -isystem $(LOCAL_PATH)/../../thirdparty/VES/Apps/Android/CMakeBuild/build/CMakeExternals/Install/vtk-android/include/vtk-6.3/

# LOCAL_C_INCLUDES += ${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include
# LOCAL_C_INCLUDES += ${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include

#LOCAL_SHARED_LIBRARIES := artoolkit
# LOCAL_SHARED_LIBRARIES := artoolkitplus

include $(BUILD_SHARED_LIBRARY)

Application.mk:

APP_ABI := armeabi-v7a 
APP_STL := gnustl_shared
GCC_ENABLE_CPP_RTTI := YES
# Set target Android API level to the application's minimum SDK version.

APP_PLATFORM := android-14

即使我仍然收到有关Android版本和共享库的警告,它构建得很好。