Android studio版本3.6
NDK开发过程这个问题就是没有找到对应so库造成的
完整的错误日志
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.pbph.ffmpegdemo-JyNw8Rk8pViQBFoHfRx06g==/base.apk"],nativeLibraryDirectories=[/data/app/com.pbph.ffmpegdemo-JyNw8Rk8pViQBFoHfRx06g==/lib/arm64, /system/lib64, /system/vendor/lib64, /system/vendor/lib64/hw]]] couldn't find "libnative-lib.so"
根据日志就是没找到这个native-lib这个so库
首先查看apk
发现lib下有这个so库
问题出现在build.gradle
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.pbph.ffmpegdemo"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//这个没有添加导致报错,这个是在打包的时候选择cpu架构,因为编译的时候只有armeabi-v7a,所以运行的时候也要加上这个限制
ndk {
abiFilters "armeabi-v7a"
}
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"
}
}
}