Android 导入包含.so文件的aar库后出现不满意的链接错误
我试图向我的应用程序添加一些新功能,所以我导入了一个aar库,其中包含一个.so文件。但是在导入之后,我的应用程序每次都会因为java.lang.UnsatifiedLinkError而崩溃。在我的应用程序的lib dir(/data/app/my.package/lib/arm)中找不到所有本机lib。如果我不导入aar库,一切都很好。我该怎么做才能使它正确?谢谢。我遇到了同样的问题!我可以用我的方式告诉你如何解决这个问题。 您的aar库必须是AndroidStudio库项目。 使用代码将其导入应用程序。库项目中的build.gradle必须声明.so文件路径Android 导入包含.so文件的aar库后出现不满意的链接错误,android,java-native-interface,aar,Android,Java Native Interface,Aar,我试图向我的应用程序添加一些新功能,所以我导入了一个aar库,其中包含一个.so文件。但是在导入之后,我的应用程序每次都会因为java.lang.UnsatifiedLinkError而崩溃。在我的应用程序的lib dir(/data/app/my.package/lib/arm)中找不到所有本机lib。如果我不导入aar库,一切都很好。我该怎么做才能使它正确?谢谢。我遇到了同样的问题!我可以用我的方式告诉你如何解决这个问题。 您的aar库必须是AndroidStudio库项目。 使用代码将其导
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
}
确保jniLibs.srcDirs是正确的!你可以从中看到这一点
我希望这对你有帮助 首先,检查您使用的设备架构是否正确
如果您已经这样做了,那么架构之间肯定存在一些不兼容。例如,在我的例子中,我有一个库只有armeabi-arch,另一个库有armeabi和armeabi-v7。当我删除最后一个库的armeabi-v7时,一切正常。原因仍然未知,但我通过在应用程序mudule的build.gradle中添加以下代码修复了此问题:
android {
......
packagingOptions {
exclude 'lib/armeabi-v7a/libnative.so'
exclude 'lib/x86/libnative.so'
}
}