我已经编译了 ffmpeg 库用于我的 Android 应用程序,所以现在我有 *.so 文件,我想在其他 Android 项目中使用它们。 但我已经在 Linux 中编译了它们,现在我将在 Windows 中工作。我可以将这些编译后的文件放到我在 Windows 中的项目中,将它们链接到 mk 文件中并使用吗? 32 位和 64 位操作系统之间的区别是否起作用? 谢谢!
最佳答案
只要您的目标 android 平台相同,它就应该可以工作。
Android NDK编译器生成的.so文件是目标android平台的原生代码。 它只是完整地打包到 APK 中,因此您用来打包 APK 的操作系统不会影响结果。
编辑:
正如评论者所建议的,我所说的目标平台是指 ARM、x86 或 MIPS 等 CPU 架构
至于API级别,targetSdkVersion和minSdkVersion都不直接影响原生代码。
相反,如果您使用比实际 Android 设备上可用的更高级别的 API,您的代码可能会在运行时失败。
为了安全地避免这种情况,您需要根据编译 .so 文件时假定的 NDK API 级别设置您的 minSdkVersion。
换句话说,“
/platforms/android- /arch- /usr/...”下的文件应该被编译 native 代码时的 NDK 编译器。确定使用了哪个级别,并确保您拥有与 minSdkVersion 相同或更大的数字。 如果您安装了 NDK,它会记录在“
/docs/STABLE-APIS.html”中。
关于android - 在不同的Android项目中使用编译好的ffpmeg库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21188754/