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' } }}