关于高版本Gradle调试模式下无法正确打包so文件的问题

问题描述

在更新了gradle版本(gradle:4.0.2,gradle-6.8.3-all.zip)之后,出现在调试模式下直接点击安装应用出现无法找到动态库的报错问题,具体报错为:

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.xxx.xx-mliVdBSRHqfLNw9XZ0wRDQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.xxx.xx-mliVdBSRHqfLNw9XZ0wRDQ==/lib/arm64, /system/lib64, /vendor/lib64, /product/lib64]]] couldn't find "xxx.so"

经过查看,生成的apk文件中不包含lib文件夹,导致的so文件缺失;若点击打包生成debug或release包则没有问题。

解决方法

  1. 回退到之前的gradle版本(classpath 'com.android.tools.build:gradle:3.4.2',distributionUrl=https://services.gradle.org/distributions/gradle-5.1.1-all.zip),问题就可以解决;
  2. 在module的build.gradle文件中添加具体的abi选择,具体为:
android {
  ...
    defaultConfig {
    ...
        //添加的内容,选择对应的abi
        ndk {
            abiFilters "armeabi", "armeabi-v7a"
        }
    }
}

你可能感兴趣的:(关于高版本Gradle调试模式下无法正确打包so文件的问题)