别人发过来一个项目,让跑一下。导入以后跑不起来,闪退,报错信息如下:
- java.lang.UnsatisfiedLinkError: Couldn’t load hyphenate from loader
dalvik.system.PathClassLoader[DexPathList[[zip file
“/data/app/com.example.chat-1.apk”],nativeLibraryDirectories=[/data/app-lib/com.example.chat-1,
/vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:526)
at com.hyphenate.chat.EMClient.loadLibrary(Unknown Source)
at com.hyphenate.chat.EMClient.getInstance(Unknown Source)
网上查了很多,说是 .so文件有错:没有把libhyphenate.so放在app的libs/armeabi, 还有libs/arm64-v7a下。好吧我看了一下,文件里有的。
那什么问题?换一个模拟器试试看!
再次运行后,发现一个细节的错,这个错让我找到了问题的源头:
- Failure [INSTALL_FAILED_NO_MATCHING_ABIS] Error while Installing APK
这个错误信息就是说:没有匹配的CPU/ABI !
把 x86 改为 armeabi 再运行一下。
OK,搞定!