我已经在我的Android应用程序中编译了ffmpeg库,所以现在我有* .so文件,我想在其他Android项目中使用它们。 但是我已经在Linux中编译了它们,现在我将在Windows中工作。我可以把这些编译好的文件放到Windows中的项目中,将它们链接到mk文件中并使用吗? 32位和64位操作系统之间的区别是否起作用? 谢谢!
答案 0 :(得分:1)
只要你的目标android平台是相同的,它应该可以工作。
Android NDK编译器生成的.so文件是目标android平台的本机代码。 它只是完整地打包到APK中,因此用于打包APK的操作系统不会影响结果。
编辑:
正如评论者建议的那样,目标平台我的意思是CPU架构,如ARM,x86或MIPS
对于API级别,targetSdkVersion和minSdkVersion都不会直接影响本机代码。
相反,如果您使用的API级别高于实际Android设备上提供的API级别,则代码可能会在运行时失败。
为了安全地避免这种情况,您需要根据编译.so文件时假定的NDK API级别设置minSdkVersion。
换句话说,"< your-ndk-dir> / platforms / android-< NDK-API-level> / arch-< CPU type> / usr /...下的文件34;编译本机代码时应该由NDK编译器查找。确定使用的级别,并确保您具有与minSdkVersion相同或更大的数字。
如果您安装了NDK,则会记录在"< your-ndk-dir> /docs/STABLE-APIS.html"。