Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“不满意链接错误”;出现在;动态“U型铸造”;在Android NDK中使用_Android_C++_Dynamic_Android Ndk_Dynamic Cast - Fatal编程技术网

&引用;“不满意链接错误”;出现在;动态“U型铸造”;在Android NDK中使用

&引用;“不满意链接错误”;出现在;动态“U型铸造”;在Android NDK中使用,android,c++,dynamic,android-ndk,dynamic-cast,Android,C++,Dynamic,Android Ndk,Dynamic Cast,我是Android开发的新手,我面临着下一个问题: 当我使用C++代码时,使用了“强”>“DyrimeSkyCase[表达式->强>“不满足Link错误”< /St>当我在模拟器上启动应用程序时出现。但当我运行应用程序时,没有它-一切正常(我的意思是对LogCat没有任何错误) 我试着在安卓2.3.3上运行它。我用的是android-ndk-r7b My Application.mk: APP_OPTIM := debug APP_ABI := armeabi APP_STL := gnustl

我是Android开发的新手,我面临着下一个问题: 当我使用C++代码时,使用了“强”>“DyrimeSkyCase[<强] >表达式->强>“不满足Link错误”< /St>当我在模拟器上启动应用程序时出现。但当我运行应用程序时,没有它-一切正常(我的意思是对LogCat没有任何错误)

我试着在安卓2.3.3上运行它。我用的是android-ndk-r7b

My Application.mk:

APP_OPTIM := debug
APP_ABI := armeabi
APP_STL := gnustl_static
APP_MODULES := native_lab
My Android.mk:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := native_lab
LOCAL_SRC_FILES := native.cpp enum_if.cpp torrent.cpp
LOCAL_CPP_FEATURES := rtti exceptions
LOCAL_LDLIBS := -llog -lz \
    /home/l/android9_toolchain/arm-linux-androideabi/lib/libstdc++.a
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
include $(BUILD_SHARED_LIBRARY)
使用动态强制转换的代码片段:

namespace libtorrent 
{
    template <class T>
    T* alert_cast(alert* a)
    {
        return dynamic_cast<T*>(a);
    }
}
.....

using namespace libtorrent;
if (torrent_finished_alert* p = alert_cast<torrent_finished_alert>(a)){}

有人知道如何解决这个问题吗?

很可能模拟器中有一个bug。如果你可以在没有模拟器的情况下测试你的应用程序,一切都会很好。我认为模拟器中有一些逻辑bug导致了这个问题。比如当你调用alert_cast(a)){}参考torrent_finished_警报,uare传递不可在仿真器上测试,这段代码必须在仿真器(即dynamic cast操作符)中编码。

尝试将这些行包括到应用程序中。mk:

APP_CPPFLAGS += -frtti 
APP_CPPFLAGS += -fexceptions

Java中是否有标记为“native”的方法?

“unsatifiedlinkerror”-错误中是否有更多的文本?如果是这样,请将其包括在问题中。我已经添加了来自LogCat的错误跟踪
APP_CPPFLAGS += -frtti 
APP_CPPFLAGS += -fexceptions