近期修改一个1年前的Android项目,其内有c++文件在一个module中,之前都是直接可以编译成so文件到aar包中。放在项目中也能直接运行。
但是今天重新编译却总是报错:java.lang.UnsatisfiedLinkError: dlopen failed: library "***.so" not found.
代码没有更改过,只是AS环境有升级。
将代码放到原始的旧项目中发现可以正常执行。
对比之后发现是gradle版本信息问题。
新版本(异常)
build.gradle
buildscript{
...
dependencies{
classpath "com.android.tools.build:gradle:3.6.1"
}
}
gradle-wrapper.properties
distributionUrl:https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
旧版本(正常执行、暂时恢复成旧版本)
build.gradle
buildscript{
...
dependencies{
classpath "com.android.tools.build:gradle:3.2.1"
}
}
gradle-wrapper.properties
distributionUrl:https\://services.gradle.org/distributions/gradle-5.4.1-all.zip