原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/Android/2019/0612/538.html
体系版本
Android Studio版本
Build APK方式生成APK
调试的时候好好的,将打完的包传输得手机长进行安置,安置胜利,不过一翻开就闪退。
没办法,只好通过在号令交运行adb logcat来抓取下log,发现闪退缘故是:
com.getkeepsafe.relinker.MissingLibraryException: lib/armeabi/librealm-jni.so
这是由于我程序里用到了Realm数据库,看样子应用这个数据库有个大坑啊,没办法,只好种种谷歌了
log截图
由于涉及到lib库,我还得从android的架构看起,终究弄懂了lib/armeabi/是个甚么鬼,简单地说,这是为了支撑那些特别特别老的手机用的库,感谢底下这篇文章的讲解
https://blog.csdn.net/u012400885/article/details/52923765
终极凭据官方文档找到了缘故https://realm.io/docs/java/latest/#couldnt-load-librealm-jniso
意思是Android同时载入32位和64位的lib库时会有问题,是以把64位的库破除出去,在App的build.gradle中增加
//过滤掉不支撑的领域
packagingOptions {
exclude"lib/arm64-v8a/librealm-jni.so"
}
留意必然不要多加,我看有的文章让同时加上了exclude "lib/mips/librealm-jni.so"等等,这些加了反而会有问题。
从新编译打包,安置,统统OK!
本日在生手机上应用,还发现了一个问题,也是翻开后碰到闪退,发现照旧librealm库的问题,从新找了下文章,发现这篇文章很有效Mixing 32- and 64-bit Dependencies in Android
上篇:上一篇:Android几种Service常驻内存的小思绪
下篇:下一篇:android 通知(关闭声音和震动)