Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.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
Android NDK和安卓1.5_Android_Android Ndk - Fatal编程技术网

Android NDK和安卓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转储了所有导入的符号,并

我的Android混合(Java/NDK)项目进展顺利。然后突然我得到一个报告,本地库无法加载到Android 1.5上

在模拟器上,它可以完美地再现。在
System.loadLibrary()
调用中抛出了一个
unsatifiedLinkError
。信息上写着“找不到图书馆”,但它就在那里。该应用的早期版本在安卓1.5上运行;但我并没有在它的基础上测试每一个构建

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

  • __cxa\u开始\u清理
  • __cxa类型匹配
  • __意外呼叫
但这些都是薄弱的参考资料。它们不应该引起错误。而且,我在安卓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
没用。除了手臂和手臂外,抓挠也不起作用

APP_PLATFORM := android-3

对于Application.mk.

,作为缩小问题范围的实验,您可以尝试使用System.load()和完整路径/文件名,而不是库名。还要检查执行位。您可以制作一个测试程序,只在按下按钮后加载库,(手动?)将gdbserver和gdb(或者甚至只是strace,如果您可以找到)连接到它,并观察在尝试加载库时发生的情况。尝试使用新的ndk,我也会检查是否有可疑的内容。