在使用jpush极光推送的过程中。遇到几个问题这里稍作记录以便下次不再犯同样的错误。
首先按照官方集成文档 把相应的jar包拷贝的libs目录下。右键add as Libiary 在build.gradle里添加依赖。
在main目录下新建一个jniLibs文件夹,把例子里编译好的.so文件都拷贝进去。
然后按照文档里的提示改AndroidManifest.xml里的文件。加入相应的权限和jpush sdk的核心功能。
这些步骤都完成初始化jpush。然后运行程序。结果一直报错。说libjcore117.so这个so库找不到。
网上搜了半天让加了这句。
sourceSets.main { //在libs下 才需要加这一句
jniLibs.srcDirs = ['libs']
}
后来发现这一句的作用等同于 在main下新建jniLibs文件夹。如果新建了jniLibs文件夹就不用再build.gradle里添加这句配置了。
也就是说如果那些libjcore117.so文件如果全部在libs文件目录下那么就得加上面报红的这句。
结果把这句改了以后发现还是不能运行。
原来是
ndk { //选择要添加的对应cpu类型的.so库。 abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64' // 还可以添加 }官方的案列 x86 和 x86_64下的.so库都是被注释掉的。而要使用的模拟器的cpu正好是x86的,这时候只需要把x86的注释去掉就好。