android studio加载so文件报错:dalvik.system.PathClassLoadero

本文详细介绍了如何解决Android项目中出现的找不到xxx.so错误,包括检查并创建libs文件夹,修改build.gradle文件,以及正确放置.so文件的具体步骤。

提示dalvik.system.PathClassLoadero ············ can not find ‘xxx.so

首先看一下项目中有没有这个文件夹:(有的话就跳过这一步)
在这里插入图片描述
如果没有,切换到project视图,在app目录下新建一个目录,名字可以随便起,libs是我建的文件夹
在这里插入图片描述

然后再build.gradle的 android里边加入下面的代码后重新build

    sourceSets {
        main {
            jniLibs.srcDirs = ['新建文件夹的名字']
        }
    }

成功后切换到android视图,可以看见一个名为jniLibs的文件夹
在这里插入图片描述

然后把so文件拷贝到这个文件夹里边就行。(.so文件一般被放在arm64-v8a x86 等名字的文件夹里边,拷贝的时候要连同文件夹一起放到jniLibs里边,不要只拷贝so文件!)

如果已经有jniLibs文件夹还出现这个问题,在 build.gradle里边的android属性下再加入这么一段基本就ok了:

    defaultConfig {
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }

最后感谢一下谷歌~

03-18 02:57:36.258 4328 4328 E AndroidRuntime: FATAL EXCEPTION: main 03-18 02:57:36.258 4328 4328 E AndroidRuntime: Process: com.example.test_boot_receiver, PID: 4328 03-18 02:57:36.258 4328 4328 E AndroidRuntime: java.lang.SecurityException: Writable dex file '/data/app/~~Q4acSgbcFhyO4NpbjoaH2g==/com.example.test_boot_receiver-WSjeG5TD8FhFBO0yVyaG2Q==/base.apk ' is not allowed. 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.DexFile.openDexFileNative(Native Method) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.DexFile.openDexFile(DexFile.java:406) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.DexFile.<init>(DexFile.java:128) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.DexFile.<init>(DexFile.java:101) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.DexPathList.loadDexFile(DexPathList.java:438) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.DexPathList.makeDexElements(DexPathList.java:397) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.DexPathList.<init>(DexPathList.java:166) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:160) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:130) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:146) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:93) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:134) 03-18 02:57:36.258 4328 4328 E AndroidRuntime: at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:126) 03-18 02:5
最新发布
03-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值