NDK和Android 1.5

时间:2014-04-11 15:21:13

标签: android android-ndk

我的Android混合(Java / NDK)项目很顺利。然后我突然得到一份报告称本机库无法在Android 1.5上加载。

在模拟器上,它完美再现。在UnsatisfiedLinkError电话上引发System.loadLibrary()。消息说"库无法找到",但它就在那里。早期版本的应用程序适用于Android 1.5;但是我没有对它上面的每一个版本进行测试。

我不记得最近推出任何新的RTL电话。此外,我已经使用readelf -s mylib.so | grep UND转储了所有导入的符号,并将它们与libc.so和libstdc ++的readelf -s输出进行匹配。因此,从1.5仿真器中提取。所有符号都可以在这些库中找到,但三个除外:

  • __ cxa_begin_cleanup
  • __ cxa_type_match
  • __ cxa_call_unexpected

但那些是弱参考。它们不应该导致错误。而且,我也无法在Android 4.2的库中找到它们。他们住在哪里?他们确实应该受到指责吗?

如果这些符号导致错误,我没有插入依赖项 - NDK工具链。对旧版本的NDK库进行重建可能会有所帮助;有没有办法指定NDK平台版本在每个CPU_ABI基础上使用?我为所有四个CPU_ABI构建;在android-ndk-r9d \ platforms \ android-3中,只能找到ARM。

编辑:用

重建
ifeq ($(TARGET_ARCH_ABI),armeabi)
TARGET_PLATFORM := android-3
endif

没有帮助。除了ARM和添加

之外,它们都没有
APP_PLATFORM := android-3

到Application.mk。

0 个答案:

没有答案