有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓 java。lang.UnsatifiedLinkError:dlopen失败:找不到“xx.so”引用的符号“srand”

我是NDK开发的新手。我使用NDK生成了xxx.so文件,它在Android 5.0或更高版本上运行良好,但在Android 4.4或更早版本上崩溃

日志为:

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "srand" referenced by "xx.so"... at java.lang.Runtime.loadLibrary(Runtime.java:362) at java.lang.System.loadLibrary(System.java:525) at com.uniquestudio.lowpoly.LowPoly.(LowPoly.java:14) at com.uniquestudio.lowpoly安卓.MainActivity.onCreate(MainActivity.java:22) at 安卓.app.Activity.performCreate(Activity.java:5372) at 安卓.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257) at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349) at 安卓.app.ActivityThread.access$700(ActivityThread.java:159) at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1316) at 安卓.os.Handler.dispatchMessage(Handler.java:99) at 安卓.os.Looper.loop(Looper.java:137) at 安卓.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187) at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:1003) at dalvik.system.NativeStart.main(Native Method)


共 (1) 个答案

  1. # 1 楼答案

    正如Dan在评论中指出的,您的问题当然来自于针对android api级别编译>=21

    为了解决您的问题,您可以在与APK的minSdkVersion相同的平台上编译代码

    你是如何使用NDK的?如果您使用的是ndk build,请添加一个应用程序。mk文件,在你的安卓系统旁边。mk文件,内容为APP_PLATFORM:=android-14(其中14是您的minsdk版本)