您的位置:首页 > 移动开发

同时集成阿里云旺与友盟推送,初始化失败s:-11,s1:accs bindapp error!的解决办法

2017-06-14 16:05 1906 查看
在应用中需要同时集成聊天和推送功能,聊天选用阿里的sdk(百川云旺),推送选用友盟的pushSDK。

这时候悲剧就出现了,注册友盟的时候报错。

 I/com.umeng.message.PushAgent: register-->onFailure-->s:-11,s1:accs bindapp error!

单独集成友盟,去掉云旺相关代码,却能够正常初始化,坑!

查看日志,发现是找不到so文件导致的。应该是集成两个sdk造成so冲突的原因吧。

 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/XXX.apk"],nativeLibraryDirectories=[/data/app/XXX/lib/arm64,

 /system/fake-libs64, /data/app/XX.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]] couldn't find "libtnet-3.1.11.so"

 java.lang.UnsatisfiedLinkError: dlopen failed: 

 "/data/data/XXX/files/libtnet-3.1.11bk1.so" is 32-bit instead of 64-bit

查看pushSDK下的libs目录so文件如下:



解决方法:

添加armeabi-v7a的so文件,并配置gradle如下:

buildTypes {

    release {

          ndk {

                abiFilters "x86", "armeabi", "armeabi-v7a"

              }

        }

}



总结
如果项目只包含了 armeabi,那么在所有Android设备都可以运行;
 如果项目只包含了 armeabi-
4000
v7a,除armeabi架构的设备外都可以运行; 
如果项目只包含了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的; 如果同时包含了 armeabi,armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。

试试加个armeabi-v7a包,哈哈,可以用啦!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐