问题描述 :
环信的语音通话 和 语音视频 功能在android api 23版本 即 6.0系统上 出现闪退
报错的指示是 /data/app/com.lvche.lvchedingdang-2/lib/arm/libeasemob_jni.so: has text relocations
(VideoCallActivity.java:140)
// 设置显示对方图像的surfaceview callHelper.setSurfaceView(oppositeSurface);
具体报错 :
07-18 16:46:14.610 23748-23748/com.lvche.lvchedingdang E/PushFactory: getPushInstance not found push instance.
07-18 16:46:14.688 23748-23748/com.lvche.lvchedingdang E/MscSpeechLog: getMscParameter MSC return -1
07-18 16:46:15.281 23748-23787/com.lvche.lvchedingdang E/linker: /data/app/com.lvche.lvchedingdang-2/lib/arm/libeasemob_jni.so: has text relocations
07-18 16:46:15.906 23748-23813/com.lvche.lvchedingdang E/PushProtocol: rec m_nSocket=-1
07-18 16:53:07.465 27209-27209/com.lvche.lvchedingdang E/PushFactory: getPushInstance not found push instance.
07-18 16:53:07.492 27209-27209/com.lvche.lvchedingdang E/MscSpeechLog: getMscParameter MSC return -1
07-18 16:53:07.921 27209-27269/com.lvche.lvchedingdang E/linker: /data/app/com.lvche.lvchedingdang-2/lib/arm/libeasemob_jni.so: has text relocations
07-18 16:54:23.012 27209-27209/com.lvche.lvchedingdang E/linker: /data/app/com.lvche.lvchedingdang-2/lib/arm/libeasemob_jni.so: has text relocations
07-18 16:54:23.037 27209-27209/com.lvche.lvchedingdang E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.lvche.lvchedingdang, PID: 27209
java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.lvche.lvchedingdang-2/lib/arm/libeasemob_jni.so: has text relocations
at java.lang.Runtime.loadLibrary(Runtime.java:372)
at java.lang.System.loadLibrary(System.java:1076)
at com.easemob.media.AVNative.<clinit>(Unknown Source)
at com.easemob.a.a.<init>(Unknown Source)
at com.easemob.a.a.a(Unknown Source)
at com.easemob.chat.EMVideoCallHelper.setSurfaceView(Unknown Source)
at com.lvche.lvchedingdang.activity.huanxin_chat.activity.hxchat.VideoCallActivity.onCreate(VideoCallActivity.java:140)
at android.app.Activity.performCreate(Activity.java:6303)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)
at android.app.ActivityThread.access$900(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5438)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
07-18 16:58:10.433 29433-29433/com.lvche.lvchedingdang E/PushFactory: getPushInstance not found push instance.
07-18 16:58:10.446 29433-29433/com.lvche.lvchedingdang E/MscSpeechLog: getMscParameter MSC return -1
07-18 16:58:10.816 29433-29486/com.lvche.lvchedingdang E/linker: /data/app/com.lvche.lvchedingdang-2/lib/arm/libeasemob_jni.so: has text relocations
问题解决 :
在gradle中减低版本至23以下
defaultConfig { applicationId "com.lvche.lvchedingdang" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0.0" // dex突破65535的限制 multiDexEnabled true }
再做相应的修改,然后运行就不会报错~!
注明:这是指标不治本的方法
具体分析请参考 : http://blog.csdn.net/jiahui_zhu/article/details/50234311