【发布时间】:2016-12-21 18:52:35
【问题描述】:
我对 Android 开发并不陌生,但在谈到 NDK 和 .so 库时,我完全是个新手。
我正在构建的应用程序使用第三方 SDK,它们提供了一些 .so 文件。他们为我提供了每个架构的 .so 文件(到目前为止:arm64-v8a、armeabi、armeabi-v7a、mips、mips64、x86、x86_64)。
我需要包含一个新的第三方 SDK,但他们只为 armeabi-v7a 和 x86 提供 .so 文件。 当我尝试运行我的应用程序时,它崩溃了,并且我从 SDK 中收到一个错误(我在 logcat 上看到它)指出:
SDKNAME 目前只为 armeabi-v7a 和 x86 架构提供预建库
这是常见的情况吗?有没有办法解决这种情况?
提前非常感谢
【问题讨论】:
-
据我了解,您只能为 armeabi-v7a 或 x86 架构构建项目。请检查您使用的是哪个构建变体,很可能不是其中任何一个。
-
我没有在我的构建配置中使用任何指定架构的东西。再说一次,我是一个超级 n00b。我发现了这个:developer.android.com/studio/build/configure-apk-splits.html 你认为它有帮助吗?
-
您应该提供更多信息,例如:使用Android Studio或Eclipse,配置文件...
-
我使用的是 Android Studio (2.2.3),配置文件没什么特别的。我尝试了一个空白项目并且发生了同样的情况(当我包含这两个 SDK 时)
-
如果您的设备是 arm64,您应该从 APK 中删除所有 64 位库,直到您获得所有这些库的 64 位版本。如果设备具有 MIPS CPU,那么您的新依赖项就不走运了,因为 ARM 仿真不够好。最后,即使在“常规”arm-v7a 平台上,第三方库之间也可能存在工具链不兼容问题。
标签: android android-ndk libraries