一、xx.so: has text relocations
错误日志如下:
E/linker: /data/app/com.gexun.sunmess_H-1/lib/arm/libCpuFeatures.so: has text relocations E/AndroidRuntime: FATAL EXCEPTION: Thread-4 Process: com.gexun.sunmess_H, PID: 2792 java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.gexun.sunmess_H-1/lib/arm/libCpuFeatures.so: has text relocations at java.lang.Runtime.loadLibrary0(Runtime.java:977) at java.lang.System.loadLibrary(System.java:1530) at org.MediaPlayer.PlayM4.Player.<clinit>(Player.java:988) at org.MediaPlayer.PlayM4.Player.getInstance(Player.java:132) at com.gexun.sunmess_H.PlaySurfaceView.processRealData(PlaySurfaceView.java:170) at com.gexun.sunmess_H.PlaySurfaceView.access$000(PlaySurfaceView.java:24) at com.gexun.sunmess_H.PlaySurfaceView$1.fRealDataCallBack(PlaySurfaceView.java:158)
这种类型的错误是由Log中所提示的so库中的错误引起的,当应用运行于Android 6.0以下的设备上时,只会有警告,不会抛异常;当运行于Android 6.0及以上的设备上时,将会抛运行时异常。
那么只要指定targetSdkVersion小于23即可解决问题(当应用运行在Android 6.0及以上的设备上时将以兼容模式运行,从而确保应用继续以运行在低于6.0版本时的方式工作)。