我有一个 Android 应用程序minSdkVersion.apiLevel
设置为 18targetSdkVersion.apiLevel
设置为23。因此我设置了NDKplatformVersion
to 18.
不幸的是,在添加 OpenSSL 后,JNI 库现在无法链接:
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'signal'
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr'
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr'
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'tcgetattr'
如果设置,问题就会消失platformVersion
到 21(19 也不起作用)。
如果 Android 应用程序的 API 级别为 18,但 JNI 库的链接级别为 21,这对 Android 应用程序意味着什么?在运行 4.3 的设备上启动时会崩溃吗?
我无法想象signal
不过 4.3 中缺少符号。这是 NDK 错误吗?
当您在 android-20 或更早版本上安装共享库时,这正是会发生的情况:它将无法加载。你不应该感到惊讶signal
缺失:Android 运行时从来就不是为了运行像curl 这样的命令行工具。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)