(1)建立国家
*目标SDK:23
(1-1)建立国 - ADD
* eclipse - 靛蓝
* ndk - android-ndk-r7c
(2)设备状态
*设备操作系统:Android 6.0预览3操作系统,Android 6.0
*设备名称:Nexus 9
(3)代码
案例1 的System.loadLibrary("游戏&#34);
案例2 System.load(“/ LIB / libc2scommon.so&#34);
(4)错误消息
案例1
09-30 19:06:56.091: D/AndroidRuntime(3512): Shutting down VM
09-30 19:06:56.091: E/AndroidRuntime(3512): FATAL EXCEPTION: main
09-30 19:06:56.091: E/AndroidRuntime(3512): Process: <MY_APP_ID>, PID: 3512
09-30 19:06:56.091: E/AndroidRuntime(3512): java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/<MY_APP_ID>-1/lib/arm/libgame.so: has text relocations
09-30 19:06:56.091: E/AndroidRuntime(3512): at java.lang.Runtime.load(Runtime.java:332)
09-30 19:06:56.091: E/AndroidRuntime(3512): at java.lang.System.load(System.java:1069)
案例2
09-30 18:43:42.390: E/AndroidRuntime(3082): Process: <MY_APP_ID> , PID: 3082
09-30 18:43:42.390: E/AndroidRuntime(3082): java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/<MY_APP_ID>-2/lib/arm/libgame.so: has text relocations
09-30 18:43:42.390: E/AndroidRuntime(3082): at java.lang.Runtime.load(Runtime.java:332)
09-30 18:43:42.390: E/AndroidRuntime(3082): at java.lang.System.load(System.java:1069)
有什么问题?
目标SDK 22没有问题
帮助PLZ。
答案 0 :(得分:3)
如果您要定位SDK 23或更高版本,则现在会拒绝具有文本重定位的共享库。这在此处记录: https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-runtime
您必须修复它们,这意味着您需要访问本机代码并准备好NDK。最简单的解决方法是将-fpic或-fPIC添加到Android.mk文件中的LOCAL_CFLAGS,然后重建库。