【问题标题】:Android NDK - The runtime doesn't get packaged to the APKAndroid NDK - 运行时未打包到 APK
【发布时间】:2015-11-02 12:56:35
【问题描述】:

我在我的 Application.mk 中设置 APP_STL := gnustl_shared

要使用 gnustl_shared, 据我了解,它应该将 libgnustl_shared.so 打包到我的 apk 文件中: apk/lib//libgnustl_shared.so

但我看到的只是我的 .so 文件。

还通过尝试加载库来验证它:

try {
    System.loadLibrary("gnustl_shared");
} catch (UnsatisfiedLinkError e) {
    Log.e("TAG", "Native library failed to load: " + e);
    System.exit(1);
}

但是加载失败了。

Any1 知道如何让 Android ndk 构建包也成为 Android 运行时?

【问题讨论】:

    标签: android gradle android-ndk


    【解决方案1】:

    当您制作 apk 时,它不会打包 libgnustl_shared.so。它只是告诉链接器链接到该库。您也不应该尝试加载该库,因为它是在您的应用程序启动时由系统加载的。那,除非您的目标是 Android API 级别 18 之前的 android。然后,您应该使用共享库变体,并且您必须在任何其他依赖它的库之前加载共享库。我假设如果您为 NDK 设置最小版本,它将起作用...

    【讨论】:

    • 另外,STL 是一个运行时支持库。它提供了一些运行时调用,例如断言。你可以调用这些函数,它们应该可以工作,不需要打包或加载它......
    猜你喜欢
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多