java.lang.UnsatisfiedLinkError ... couldn't find "xxx.so"
原因:
库被导入了至少两次,系统不知道该选取哪个使用。
解决办法:
在app/build.gradle中加入如下代码,去掉重复的库。
android {
packagingOptions {
exclude 'lib/arm64-v8a/libuvc.so'
exclude 'lib/arm64-v8a/libjpeg-turbo1500.so'
}
}
exclude 后面添加要去除的重复的库,可以添加多个。
然后点击 sync Now,问题解决。
下面我们来回顾下packagingOptions的相关用法。
关于packagingOptions
packagingOptions常见的设置项有exclude、pickFirst、doNotStrip、merge。
exclude,过滤掉某些文件或者目录不添加到APK中,作用于APK,不能过滤aar和jar中的内容。
比如:
packagingOptions {
exclude 'META-INF/**'
exclude 'lib/arm64-v8a/libmediaplayer.so'
}
pickFirst,匹配到多个相同文件,只提取第一个,作用于APK,不能过滤aar和jar中的文件。
比如:
packagingOptions {
pickFirst "lib/armeabi-v7a/libaaa.so"
pickFirst "lib/armeabi-v7a/libbbb.so"
}
doNotStrip,可以设置某些动态库不被优化压缩。
比如:
packagingOptions{
doNotStrip "*/armeabi/*.so"
doNotStrip "*/armeabi-v7a/*.so"
}
merge,将匹配的文件都添加到APK中,和pickFirst有些相反,会合并所有文件。
比如:
packagingOptions {
merge '**/LICENSE.txt'
merge '**/NOTICE.txt'
}
————————————————
版权声明:本文为CSDN博主「大榕树51」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hnjzfwy/article/details/121681084
java.lang.ClassNotFoundException: Didn‘t find class “android.support.v4.app.CoreComponentFactory“ o
在这里插入代码片
android:appComponentFactory="android.support.v4.app.CoreComponentFactory"
tools:replace="android:appComponentFactory"
————————————————
版权声明:本文为CSDN博主「试行」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_38995168/article/details/123639756