使用 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
我正在使用 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