使用 targetSdkVersion=23 编译时 Android 6.x 应用程序缺少库(32 位/64 位混淆)

Missing library for Android 6.x app when compiling with targetSdkVersion=23 (32-bit / 64-bit confusion)

我正在使用 Eclipse 编译一个 Android 应用程序。该应用程序有一个库。我正在针对 Android 6.x SDK:

进行编译
project.properties:: target=android-23

具有以下清单:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="22" />

一切正常,应用程序可以在 Android 5.x 和 6.x.

上 运行

如果我将清单升级为:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="23" />

应用程序在 Android 6.x 失败,因为它找不到我的应用程序的 .so 库。

我还有:

Application.mk:: APP_ABI := armeabi-v7a

我认为我的应用程序对 32-bit/64-bit 感到困惑。如何生成仅包含 32 位库的二进制文件,即使编译期间目标为 API 版本 23,该库也会被加载?

如此处所述,问题出在库内的文本重定位。奇怪的是,我在编译期间没有收到任何错误,但如果你的目标是 API=23,它就不起作用。解决方案是删除所有文本重定位(对我来说这可能非常困难)或保持 API=22.

http://lists.freedesktop.org/archives/gstreamer-devel/2015-December/055860.html

https://bugzilla.gnome.org/show_bug.cgi?id=742633