java.lang.UnsatisfiedLinkError 更改 minSdkVersion 后

java.lang.UnsatisfiedLinkError after changing minSdkVersion

将 minSdkVersion 从 21 更改为 24 后,我收到异常:

java.lang.UnsatisfiedLinkError: dalvik.system.DexClassLoader[DexPathList[[dex file "/data/user/0/com.test.testprint/files/nepcore.dex"],nativeLibraryDirectories=[/data/app/com.test.testprint-2/lib/arm, /data/resource/lib, /vendor/lib, /system/lib]]] couldn't find "libDeviceConfig.so"

切换回 minSdk 21 后,一切恢复正常。

我也尝试添加 ndk 过滤器,但没有帮助:(

任何人都可以帮助理解这个异常是如何与 minSdkVersion 联系起来的吗?

需要在清单文件中的应用程序部分中添加一行:)

<application
  ...
android:extractNativeLibs="true">

对于minSdk >= 23 and Android Gradle Plugin >= 4.2.0,需要在Androidmanifest.xml

中使用useLegacyPackaging in app's build.gradle file instead of extractNativeLibs

使用 DSL 打包压缩本机库的示例(可以找到 here

android {
    packagingOptions {
        jniLibs {
            useLegacyPackaging true
        }
    }
}