dalvik.system.PathClassLoader[DexPathList[[zip file xxx ]] couldn't find "libplayer.so&quo
16lz
2021-01-23
AndriodStudio集成 FFmpeg环境,报错:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.player-Bhalv81bWdaEyxPpDfXPvg==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.player-Bhalv81bWdaEyxPpDfXPvg==/lib/arm64, /system/lib64, /product/lib64]]] couldn't find "libplayer.so"
我的CMakeList文件配置
cmake_minimum_required(VERSION 3.4.1)# 目录下所有的`.cpp`文件都需要被编译,并保存到全局变量`SOURCE`中。file(GLOB SOURCE *.cpp)# 将SOURCE变量中的源文件编译到 player动态库中add_library( player SHARED ${SOURCE})find_library( log-lib log)#设置头文件的目录。#编译的时候需要用到的头文件,编译后头文件不会打包到目标库中。这样的话,在native-lib中可以直接引用头文件。include_directories(include)# 标志位, clang这个编译期来构建set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/../../../libs/${CMAKE_ANDROID_ARCH_ABI}")# 将armeabi-v7a目录下的静态库文件,链接到动态库`player`中。# 将会去编译环境目录去找 avfilter avformat ...等静态库,所以需要配置编译环境路径target_link_libraries( player avfilter avformat avcodec avutil swresample swscale ${log-lib})
app的build.gradle文件
android { compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { applicationId "com.example.player" minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags "" abiFilters "armeabi-v7a" } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2" } }}
修改 app 的build.gradle文件
android { compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { applicationId "com.example.player" minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags "" abiFilters "armeabi-v7a" } } ndk{ abiFilters "armeabi-v7a" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2" } }}
更多相关文章
- unbuntu 下android(MT6573) 编译环境设置
- Android studio移动项目到另外一个文件夹,结果不能安装的解决方法
- Android之通过ContentProvider共享文件
- Android保存Log信息到本地文件
- 【技术直通车】ArcGIS Runtime SDK for Android 1.1 搭建开发环
- java和Android文件下载断点续传和图片下载代码实现,可直接复制简
- 列出sdcard里所有.mp3文件,并且可以点击播放
- Android 文件瀏覽器