关于android中的JNI
错误日志:关于android中的JNI,android,android-ndk,java-native-interface,Android,Android Ndk,Java Native Interface,错误日志: D/dalvikvm( 1010): Trying to load lib /data/data/com.mediatek.cmmb.app/lib/libcmmbsp.so 0x4051bb80 W/System.err( 1010): java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1346]: 86 cannot locate '_ZN7android7RefBase14moveRef
D/dalvikvm( 1010): Trying to load lib /data/data/com.mediatek.cmmb.app/lib/libcmmbsp.so 0x4051bb80
W/System.err( 1010): java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1346]: 86 cannot locate '_ZN7android7RefBase14moveReferencesEPvPKvjRKNS_22ReferenceConverterBaseE'...
W/System.err( 1010): at java.lang.Runtime.load(Runtime.java:425)
libcmmbsp.so可以在4.0平台上运行良好。但它在平台2.3中存在错误。是因为版本问题吗?我认为,由于版本的原因,库不会有问题。我找不到这么好的代码 它找不到该函数
android::RefBase::moveReferences(void*, void const*, unsigned int, android::ReferenceConverterBase const&)
因为这个功能直到Android 4.0才被引入
这是一个内部库函数,不是NDK的一部分。除了Android平台本身内部的代码外,任何东西都不应该使用它。它可能会在未来的版本中消失、更改签名或更改行为。您应该指定ndk build platform与ApplicationManifest中定义的min SDK兼容,也就是说,如果它没有健全的代码,此应用程序和so集在android2.3中无效?事实上,
libcmmbsp.so
依赖于专用Android函数是一个问题。该库的构建方式应使其仅依赖于NDK公开的符号。.so将不会加载到任何预集成电路上,并且可能无法在将来的版本上工作。