【问题标题】:Using alternate version of NDK for library compliation使用替代版本的 NDK 进行库编译
【发布时间】:2017-01-27 14:54:24
【问题描述】:

我对 NDK 没有任何经验,我正在尝试调试我使用的库中的问题。抱歉,我对这个问题缺乏了解。该库被打包为 aar 文件。

库正在报告未捕获的异常,并在错误中引用 ndk-r12-release:

A/libc: /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/src/abort_message.cpp:74: void abort_message(const char *, ...): assertion "terminating with uncaught exception of type char const*" failed
A/libc: Fatal signal 6 (SIGABRT) at 0x000066f2 (code=-6), thread 26754 (Thread-9778)

与库的开发人员讨论这个问题,他们告诉我它是使用“ndk-r13-release”构建的,并且使用 r13 解决了与我所看到的类似的问题。

最初我没有安装任何 NDK,后来从 Android Studio 安装了最新的 NDK,版本 13.1.3345770,我仍然在 logcat 中看到对 r12 的相同引用。

我的应用程序完全是 Java,除了这个组件之外没有其他 NDK 库。再说一次,我对 Android 的 NDK 方面的方式有点不了解。

我的问题是,作为 aar 提供的库是否是预编译的,如果对 ndk-r12-release 的引用意味着它实际上是用它编译的,而不是我被告知的 r13?还是我在构建过程中编译库,我是否能够强制库使用 r13?

欢迎任何见解!

【问题讨论】:

    标签: android compilation android-ndk


    【解决方案1】:

    根据您的说法,问题似乎不是您的本地 NDK - 事实上,正如您所提到的,您之前没有安装 NDK。

    aar 文件是一个压缩文件,就像一个 Jar 文件,并且 C++ 库已经内置在其中。在我看来,该库是使用 NDK r12 构建的 - 因此,如果该库需要 NDK r13 - 您需要使用此版本重新构建它(或要求开发人员为您提供一个)。

    【讨论】:

    • 谢谢,这正是我的理解,我只是需要保证我没有发疯。
    猜你喜欢
    • 1970-01-01
    • 2012-06-08
    • 2011-07-24
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    相关资源
    最近更新 更多