无法加载库:reloc_库[1306]:249找不到';atof';。。。在Android中加载avformat.so时
我正在使用Android Studio 2.2,并尝试链接ffmpeg库以在Android 4.1.2设备上运行。加载avformat库时,我得到了错误无法加载库:reloc_库[1306]:249找不到';atof';。。。在Android中加载avformat.so时,android,ffmpeg,Android,Ffmpeg,我正在使用Android Studio 2.2,并尝试链接ffmpeg库以在Android 4.1.2设备上运行。加载avformat库时,我得到了错误 “无法加载库:reloc_库[1306]:249找不到'atof'…” 下面的链接指出,如果应用程序是使用SDK版本21及更高版本构建的,那么在使用旧Android版本(SDK版本
“无法加载库:reloc_库[1306]:249找不到'atof'…”
下面的链接指出,如果应用程序是使用SDK版本21及更高版本构建的,那么在使用旧Android版本(SDK版本<19)的设备上运行时会出现此问题
我在build.gradle中将targetSdkVersion更改为19,并使用“android-16”目标构建了ffmpeg库,但仍然得到了错误
我想知道是否有人有类似的问题,并找到了一种方法,使它的工作。谢谢。我想我已经开始工作了,或者至少解决了我的问题。问题的原因有两个: 1) ffmpeg库是用“android-23”构建的 2) Android Studio没有将ffmpeg库打包到APK 这是我能让它工作的东西
- 使用“android-19”(或其他链接建议的更低版本)构建ffmpeg库。顺便说一下,targetSdkVersion不必小于21。对我来说,它仍然适用于23
- 按我正在使用的这些库的特定顺序调用System.loadlibrary(“”) 系统加载库(“avutil-55”) 系统加载库(“swscale-4”) 系统加载库(“avcodec-57”) 系统加载库(“avfilter-6”) 系统加载库(“avformat-57”) 系统加载库(“avdevice-57”)
# Sub-libraries ffmpeg
add_library( avcodec-57 SHARED IMPORTED )
add_library( avdevice-57 SHARED IMPORTED )
add_library( avfilter-6 SHARED IMPORTED )
add_library( avformat-57 SHARED IMPORTED )
add_library( avutil-55 SHARED IMPORTED )
add_library( swscale-4 SHARED IMPORTED )
set_target_properties( avcodec-57
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavcodec-57.so
)
set_target_properties( avdevice-57
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavdevice-57.so
)
set_target_properties( avfilter-6
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavfilter-6.so
)
set_target_properties( avformat-57
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavformat-57.so
)
set_target_properties( avutil-55
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavutil-55.so
)
set_target_properties( swscale-4
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libswscale-4.so
)
# Specifies a path to native header files.
include_directories(
libs/${ANDROID_ABI}/include
)
target_link_libraries( # Specifies the target library.
native-libcore
# Links the target library to the log library
# included in the NDK.
avcodec-57 avdevice-57 avfilter-6 avformat-57 avutil-55 swscale-4
${log-lib}
)
- 最后,因为Android Studio 2.2没有打包这些库,所以我手动将这些库复制到项目..\build\mediates\cmake\debug\obj\文件夹中。在刷新CMakeLists.txt(执行项目同步)之前,此文件夹不存在。应用程序运行时,库将复制到apk