Android 开发:DexClassLoader 加载 dex 文件时 so 找不到解决方法
可能是因为 DexClassLoader 加载的 dex 文件的 so 依赖路径没有正确配置,导致无法找到 so 文件。而使用 System.loadLibrary 直接加载 so 文件时,系统会按照默认的 so 库搜索路径去查找 so 文件,所以不会报错。\n\n你可以尝试在 DexClassLoader 加载 dex 文件之前,通过设置 DexClassLoader 的父 ClassLoader 为当前线程的上下文 ClassLoader,以确保 so 文件的依赖路径正确。\n\n示例代码如下:\njava\nClassLoader parentClassLoader = Thread.currentThread().getContextClassLoader();\nDexClassLoader dexClassLoader = new DexClassLoader("your_dex_path", "your_optimized_dex_path", "your_lib_dir", parentClassLoader);\n\n\n其中,"your_dex_path" 是 dex 文件的路径,"your_optimized_dex_path" 是优化后的 dex 文件的输出路径,"your_lib_dir" 是 so 文件所在的目录。\n\n注意:在使用 DexClassLoader 加载 dex 文件时,需要确保 dex 文件和 so 文件的路径正确,并且 so 文件的依赖库也已经正确配置。
原文地址: https://www.cveoy.top/t/topic/qaEv 著作权归作者所有。请勿转载和采集!