Android NDK和安卓1.5
我的Android混合(Java/NDK)项目进展顺利。然后突然我得到一个报告,本地库无法加载到Android 1.5上 在模拟器上,它可以完美地再现。在Android NDK和安卓1.5,android,android-ndk,Android,Android Ndk,我的Android混合(Java/NDK)项目进展顺利。然后突然我得到一个报告,本地库无法加载到Android 1.5上 在模拟器上,它可以完美地再现。在System.loadLibrary()调用中抛出了一个unsatifiedLinkError。信息上写着“找不到图书馆”,但它就在那里。该应用的早期版本在安卓1.5上运行;但我并没有在它的基础上测试每一个构建 我不记得最近引入了任何新的RTL电话。此外,我已经用readelf-s mylib.so | grep UND转储了所有导入的符号,并
System.loadLibrary()
调用中抛出了一个unsatifiedLinkError
。信息上写着“找不到图书馆”,但它就在那里。该应用的早期版本在安卓1.5上运行;但我并没有在它的基础上测试每一个构建
我不记得最近引入了任何新的RTL电话。此外,我已经用readelf-s mylib.so | grep UND
转储了所有导入的符号,并将它们与libc.so和libstdc++.so的readelf-s
输出进行了匹配,就像从1.5模拟器中提取的那样。所有符号均可在这些库中找到,但三个除外:
- __cxa\u开始\u清理
- __cxa类型匹配
- __意外呼叫
ifeq ($(TARGET_ARCH_ABI),armeabi)
TARGET_PLATFORM := android-3
endif
没用。除了手臂和手臂外,抓挠也不起作用
APP_PLATFORM := android-3
对于Application.mk.,作为缩小问题范围的实验,您可以尝试使用System.load()和完整路径/文件名,而不是库名。还要检查执行位。您可以制作一个测试程序,只在按下按钮后加载库,(手动?)将gdbserver和gdb(或者甚至只是strace,如果您可以找到)连接到它,并观察在尝试加载库时发生的情况。尝试使用新的ndk,我也会检查是否有可疑的内容。