android - native 应用程序在 Android L 上崩溃

标签 android android-ndk android-5.0-lollipop

我有一个 native 应用程序,它始终在具有 DalivikART 运行时的 Android KitKat 上运行,但它现在在 Android L 上崩溃了以下痕迹:

E/art(12810): dlopen("/data/app-lib/com.mylib.example", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "issetugid" referenced by "mylib.so"...
D/AndroidRuntime(12810): Shutting down VM
E/AndroidRuntime(12810): FATAL EXCEPTION: main
E/AndroidRuntime(12810): Process: com.mylib.example, PID: 12810
E/AndroidRuntime(12810): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "issetugid" referenced by "mylib.so"...
E/AndroidRuntime(12810):    at java.lang.Runtime.loadLibrary(Runtime.java:364)
E/AndroidRuntime(12810):    at java.lang.System.loadLibrary(System.java:610)

Android L 中的 ART 运行时与 KitKat 不同吗?目前还没有新的 NDK 可用,因此,如何避免此崩溃,因为似乎不再支持函数 issetugid

最佳答案

此问题已在最终的 Android 5.0 版本中得到修复。无需重新编译现有的二进制文件。

但是,如果使用目标 android-21 编译 native 库,则在以前的 Android 版本 (< 5.0) 上会失败

关于android - native 应用程序在 Android L 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24452185/

相关文章:

android - Java 8 和安卓

Android 底部栏,如 Google Space 应用

android - 在 Android NDK 中捕获 C++ 信号并仍然打印故障转储

android - 使用 android ndk - camera api 拍照

NDK 从 20.1 升级到 21.0 后 Android 应用崩溃

android - 无法使用 minSdk = 21 构建项目

Android 5.0 Lollipop : setColorFilter "leaks" onto other buttons

android - Achartengine 平移动画

android - 如何从 asynctask 类返回数据到 oncreate 方法

java - android location apis : FusedLocationApi. getLastLocation 给出 null