这个问题已经在不同的地方提出,但似乎没有一个简单的详细解释需要什么。
到目前为止,我已经构建了一个用于 android 的原生二进制 ffmpeg,构建还可以。
我已将二进制文件放在我的项目 /lib/armeabi-v7a/ 目录中,并将其重命名为 libffmpeg.so,以便包装系统可以拾取它,如其他帖子中所述。
现在的问题是 libffmpeg.so 或 ffmpeg 需要一些其他库,这些库通常位于其(ffmpeg)自己的 lib 目录中。当我使用 Runtime.getRuntime().exec(command) 运行它时,它会调用那些不在正确位置或根本没有被 android 打包系统拾取的其他库。
所以我将 ffmpeg 需要的所有库复制到同一个 /lib/armeabi-v7a/ 中,但仍然没有成功。
在 Stackoverflow 中搜索,我发现使用 jni 方法的帖子,其他人说他们可以在没有 jni 的情况下做到这一点。使用需要android中其他库的预构建二进制文件的最简单方法是什么?
然后还有 Android.mk 和 Application.mk 文件的问题,什么时候需要它们,是仅在尝试在 android 中构建本机 C/C++ 代码时,还是应该在预构建库和二进制文件时使用参与其中。而且,如果我在这种情况下需要它们,这些文件应该放在项目中的什么位置?
我对android很陌生,请保持清晰和谨慎,感谢您分享您的一些智慧。