java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/项目包名

 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/项目包名-2/base.apk", zip file "/data/app/项目包名-2/split_lib_dependencies_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_0_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_1_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_2_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_3_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_4_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_5_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_6_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_7_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_8_apk.apk", zip file "/data/app/项目包名-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/项目包名-2/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libhdtk_socket.so"
第一种方法:
1.在main下面新建jniLibs并把.so文件复制到该目录下,并把jar放在lib目录下并添加到项目中。
2.这样做的话如果还不行就看build.gradle种android下的ndk支持的so库架构,如果跟下面的代码一样
android {

        ndk {
            // 设置支持的SO库架构
            abiFilters 'armeabi' ,'x86', 'armeabi-v7a', 'x86_64','arm64-v8a'
        }
    }
}

则去掉'x86', 'armeabi-v7a', 'x86_64'这些架构然后编译


去掉后为:
android {

        ndk {
            // 设置支持的SO库架构
            abiFilters 'armeabi' ,'arm64-v8a'
        }
    }
}


然后编译运行可正常。
第二种方法:
1.jar包和so文件都放在libs目录下。
2.build.gradle文件中添加如下代码
android{   
   sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
}
}


如果不行就看build.gradle文件是否存在ndk的ndk支持的so库架构,如果跟下面的代码一样则
android {

        ndk {
            // 设置支持的SO库架构
            abiFilters 'armeabi' ,'x86', 'armeabi-v7a', 'x86_64','arm64-v8a'
        }
    }
}


去掉'x86', 'armeabi-v7a', 'x86_64'这些架构然后编译运行
去掉后为:
android {

        ndk {
            // 设置支持的SO库架构
            abiFilters 'armeabi' ,'arm64-v8a'
        }
    }
}

你可能感兴趣的:(开发中的异常处理)